Add ability to block by acquiring and releasing a unique token (BL-475)

We've been tending to write test names that describe more what the test tests, e.g., AcquireToken_SucceedsWhenNothingHoldsToken, ...FailsWhenSameProcessAlreadyHasToken, ...SucceedsAfterTokenReleased. These three are combined here which makes it hard...maybe ...SucceedsWhenTokenNotCurrentlyHeld?