Offload functions to worker threads with shared memory primitives for Node.js.

refactor: use Int32Atomic for pipe backpressure; add waitAsync/notify master

Dogfood moroutine's own shared-memory primitives for the stream backpressure path instead of reinventing the Atomics layer. - Add `waitAsync(expected, timeoutMs?)` and `notify(count?)` methods to Int32Atomic, wrapping `Atomics.waitAsync` / `Atomics.notify`. Returns 'ok' | 'not-equal' | 'timed-out' from the wait. 5 new tests. - Replace raw Int32Array + Atomics.* calls in pipe.ts with Int32Atomic method calls. A PipeFlags struct holds two Int32Atomic views (inflight at offset 0, state at offset 4) over a single 8-byte SAB. - Expose newPipeFlags() / pipeFlagsFromBuffer() so callers only work with typed wrappers; the raw SharedArrayBuffer is passed over the dispatch message edge but both sides reconstruct PipeFlags from it. Behavior unchanged — same throughput (~450K/s) and backpressure tightness (~89ms steady latency with 5ms-per-item consumer). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>