Temporarily don't destroy coroutines when they finish.

It looks like this was biting me in the ass, will have a better fix
soon.
Cleanup
Refactor events to be simpler and more useful