title: After Task.IsCompleted what is better: await or Result
body: <p>I'm working in a simple timeout code for my http requests. I got this</p>
  
  <pre><code>private async Task&lt;HttpResponseMessage&gt; ExecuteIOTask(Task&lt;HttpResponseMessage&gt; ioTask, int timeout)
      {
          var timeoutTask = await Task.WhenAny(Task.Delay(timeout), ioTask);
  
          if (ioTask.IsCompleted)
              return ioTask.Result;
  
          throw new TimeoutException();
      }
  </code></pre>
  
  <p>After IsCompleted, is there any difference using <code>Result</code> vs <code>await</code> ? The task is already completed at that instance, so I think the performance should be the same. But i'm a little concern about the exception handling. I think <code>Result</code> is not going to propagate the exceptions but <code>await</code> will.</p>
  
  <p>Is this correct?</p>