if the runtime lacks growable-SharedArrayBuffer support — feature-test with isSharedArrayBufferAllocatorSupported and fall back to createSimpleMemoryAllocator when unavailable.
⚠️ Same lifetime caveat as createWasmMemoryAllocator: do NOT retain a
copy: false snapshot across a subsequent fromData, as the snapshot's arena
column buffers may be freed and reused.
Sub-allocate numeric component storage into a single growable
SharedArrayBuffer, so the arena can be posted to a worker once and shared without copying. A growable SAB grows in place and never detaches, so live views stay valid across growth (needsRefreshnever fires).