Changed desync runner to always run to first wait initially. *BREAKING CHANGE*
Fixed broken event unit test.
More use of the Desync monad.