test: add async listener tests
SQUASH: fix errorHandler so exit event fires

And some other misc stuff that'll need to be squashed.