drive
Run the compiled eval to completion on ONE dedicated daemon thread, draining any cross-tick iterator in a tight loop. Mirrors Lane.pump's per-task completion contract.
Thread-per-task, not a pool: this lane's evals are long, so reuse buys nothing, and a shared pool would let an end-of-eval interrupt() hit a reused thread running a different task, or leak a stale interrupt flag onto the next one. The worker is in live, with its interrupt hung on the future, before start(), so a cancel racing the first step still has a thread to interrupt.