Another attempt at fixing exceptions

For some reason sys.exc_info() sometimes returns (None, None, None) even
though the exception provided by ascynio to the exception handler *is* an
exception.

This patch works with UnicodeDecodeErrors and other exceptions that are raised
inside or outside tasks. Although I have no idea why sys.exc_info()[2] returns
a traceback in the exact same line where sys.exc_info() returns (None, None,
None), so I don't trust it at all.