Properly handle async task failures

- I once again confused Task.IsCompleted with
  Task.Status == TaskStatus.RanToCompletion in
  ContinueWithNotComplete