fix: reduce memory usage — c_allocator + 2MB thread stacks
zig's default thread stack is 16 MB. with ~2,750 subscriber threads
that's 44 GB of virtual memory mapped. switch to explicit 2 MB stacks
(generous for websocket read loops and CBOR decoding) and replace the
debug allocator (GPA) with glibc malloc, which returns freed pages to
the OS instead of accumulating metadata.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>