Probably because musl's allocator exposes single newly faulted pages directly to the app. Other allocators tend to pre-allocate multiple pages at a time, so that the race window is narrower.
These kinds of issues with VM are notoriously tricky to replicate. And the main debugging method is "staring intently at the code".