errors: only exit entered CLS namespaces

It's eminently possible for the asyncListener error calback to get
called without a value being passed (if there hasn't been any async
activity on the continuation chain yet). However, if a value *is*
passed in, since the CLS listener always returns a value,
it's safe to exit the domain.

Updated to the redesigned and simplified async-listener polyfill.
release: 2.4.1 - new async-listener version and error fix