Do you really need to spin another Task here? Consider using TaskCompletionSource with which you can control completed/faulted etc. task back.