Why not TaskCompletionSource<Exception>