Works on the caller's thread and never blocks it: tiles render in slices of SliceBudget with a yield between slices, so a single-threaded host (Blazor WebAssembly) keeps drawing frames. A display-list build is not resumable and runs in one piece after a yield; it stops at its next cancellation check (every 1,024 operators) when cancelled.
Cooperative = 2