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 EvalTask.cancel's interrupt() hit a reused thread running a different task, or leak a stale interrupt flag onto the next one. The worker is published via EvalTask.bindWorker before start(), so a cancel racing the first step still has a thread to interrupt.