Why not use an assertTrueEventually? Testing with timeout is always fragile. Either the timeout is too big, and it slows down the test, or it is to small (sometimes) and the test fails. 

So sleeping = bad