Cooperative cancel handle for an in-flight eval. Wraps a clone of
the Session’s [wasmtime::Engine]; the engine’s epoch counter is
shared internally so a .bump() from any task takes effect on the
concurrent func.call_async running against the same engine.
Cooperative interrupt signal shared between the SLYNK reader task (which
interrupt()s on (:emacs-interrupt)) and the eval task. Backed by a
monotonic generation counter rather than a boolean latch: an interrupt
increments the count, and a request asks “did the count move since I
started?” via InterruptHandle::generation + [InterruptHandle::is_interrupted_since].