Add workaround to waitCatch for #14

This uses the same technique I described in my enclosed-exceptions pull
request. I think it would be better to fix this in async itself, so that
other packages trying to use async for reliable exception handling get
the semantics they're looking for.