title: Task throws UnobservedTaskException in rare occasions only and kills iis process
body: <p>Task, in very rare occasions throws UnobservedTaskException and kills the iis process. I could not successfully reproduce it as it happens very rarely and randomly. After some research I found out that the Task is garbage collected somehow. But I am holding the reference to the task anyway so this should not happen. </p>
  
  <pre><code>var task = Task.Factory.StartNew(() =&gt;
  {
      processor.DoSomeLongRunningProcess();       
  });
  
  var endTask = task.ContinueWith(t =&gt;
  {
      if (t.IsCanceled)
      {
          Loggger.Log("Cancelled");
          UpdateStatusToDb(Cancelled);
      }
      else if (t.IsFaulted)
      {
          if (t.Exception != null)
          {
              Loggger.Log("Faulted", e.Exception);
              UpdateStatusToDb("Faulted", e.Exception.Message);
          }
          else
          {
              Loggger.Log("Faulted");
              UpdateStatusToDb("Faulted", "No Exception but Faulted");
          }
      }
      else
      {
          UpdateStatusToDb("Successful");
      }
  }, TaskContinuationOptions.None);
  </code></pre>
  
  <p>Any idea why?</p>
  
  <p>Edit:
  I am deliberately throwing some Exception inside <code>DoSomeLongRunningProcess()</code>. Those Exceptions are pending inside Task and thrown after some time I guess.</p>