cleanup demo
use async-listener for catching errors

instead of using `uncaughtException`, here we replace the short trace
with the long trace and let the error do whatever it was going to do
without altering it’s behavior