Fix bug where setting the result during a continuation was not going through TrySetResult, and so therefore wasn't being propagated.
Fix logic to use the new task based async pattern