Per-frame drive: pump the tick event, then advance pending async tasks in a cancellation-safe loop (a task may be canceled / a new one added mid-loop).
Per-frame drive: pump the tick event, then advance pending async tasks in a cancellation-safe loop (a task may be canceled / a new one added mid-loop).