The blocking receive sat in a single cond.wait() and never checked ComfyUI's interrupt flag, so Cancel didn't stop it. receive() now takes a should_abort callback and waits in short slices; the node passes ComfyUI's throw_exception_if_processing_interrupted so hitting Cancel breaks out promptly (no-op outside ComfyUI). Covered by an abort test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>