don't return if the parent does have a queue
asynclistener: no infinite recursion in errors

Set the kInAsyncTick flag while processing errors so the user can't
accidentally end up in an infinite loop while the error callbacks are
being processed.