codegen: Emit a GC safepoint at cancellation points
A hot loop that polls for cancellation via explicit cancellation points
(@cancel_check) previously never touched a GC safepoint: it was
responsive to cancellation but starved any concurrent stop-the-world
request. That wedges the whole process - GC waits for the spinner, while
the canceller parks at a safepoint before it gets a chance to deliver
the request that would stop the spinner. Emit the safepoint while
reset_ctx is unpublished, so that a concurrently delivered cancellation
signal cannot longjmp the thread out of the safepoint wait.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012nCkyKUguncLLJrH9K5o7m