It's only sleeping for 10 ms, not 10 seconds.  I put the sleep in there just to add a small amount of jitter to increase the chances that the first asynchronous action will happen before the asynchronous action on the next line of code.  The test itself is not fragile - assuming the code works, the test will pass no matter what order things happen in.  The only fragile thing is whether the test is testing what I want it to test or not.  A count down latch etc could be used, but it's a lot of boiler plate to guarantee what this 1 LOC gives at least 90% certainty will happen, and the consequence of that not being true is that the test still passes.