Issue 46

Pushed 558c9c213852de9b442a4a7f542408c3c8194a45 to the branch, as agreed.
Another option is to introduce a `TimeSource` interface (where the default would call into `System.currentTimeMillis()`), that can be injected so we can avoid sleeping. 
Let's leave this like this for now, but seems like we'd like to agree on a pattern to use through out the code to test consistently for these things and avoid falling back to sleeping in tests again.