Cleanup event queue, and checks

There are lot of stuff in the check lifecycle which just asks for trouble... The event queue is not generic.

Also the event queue internally is converted to monotonic time.

This pull request needs review, and probably a couple of fixes too. But it would be great to start reviewing this stuff.