The issue here is in user code:
```
var task = StartProcess();
Thread.Sleep(1000);
Debug.Log(task.Status); // WaitingForActivation
Debug.Assert(task.Status != TaskStatus.WaitingForActivation); // Assertion failed
```
The Thread.Sleep call here is blocking the main thread, making the await Task.Delay() call never resume. So Task1 is actually blocked before it can raise its exception.
The outmost task (the one generated by the async state machine as a continuation to the Task.Delay call) is thus in WaitingForActivation state as it is supposed to resume on main thread, but can't.