Fixes periodic travis failures by removing sleeps and using synchonization structures to test synchronous- and asynchrounous functions.

The basic change is to use a latch to force the asynchronous portions from finishing. Keep in mind they return instantly. So the chain will be finished, even though not all the async work will be. However, do verify that the synchrounous work is completed.

A nice side effect here is that the `Thread.sleeps()` were removed. Wooooo!