As suggested by Jon Skeet, the Task.IsCompleted is the better option.
According to MSDN:
IsCompletedwill return true when the task is in one of the three
final states:RanToCompletion,Faulted, orCanceled.
But it appears to return true in the TaskStatus.WaitingForActivation state too.