Check for OperationCanceledException instead of TaskCanceledException.

There are cases where an OperationCanceledException could be thrown instead of the subclass TaskCanceledException (I've seen it happen in a real world app), so I think it should be checking for OperationCanceledException instead of the TaskCanceledException so that both exception types are covered.