Improve performance of chained tasks and avoid wrapping exceptions

This fixes #305 in addition to other usability improvements, especially for cases where `await` is used (which automatically unwraps the `InnerException` of an `AggregateException`).