feat(channel): respect highWaterMark option
channel(source, { highWaterMark }) now plumbs the threshold through:
- Channel stores it from opts (default 16)
- findReadyConsumer uses it for the cap check
- addConsumer returns it in the per-consumer handle
- prepareArg forwards it in the {__stream__, ...} arg
- Worker portToAsyncIterable receives it; uses it in the cap→below-cap
transition check that signals readySignal
- Legacy message-based path uses it for the pause-threshold too
Two sides both need it (producer scans against it; consumer detects
the transition to signal readiness), so it travels with the arg.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>