WIP: fix errorHandler so exit event fires
SQUASH: change how error handling works
test: add additional async listener tests
SQUASH: fixed up my own tests