Task.Delay, is returns a non-completed task and the async state machine now has to go into plan B and use the execution context, but async void can't really "wait" there until it's done so it just returns, meaning e.Cancel is always false by the time the method returns