mutex initialization is racy
There doesn't seem to be anything that prevents a race from happening during mutex initialization.
This could manifest as two threads initializing at the same time, or more likely, other threads using the mutexes before initialization is complete.
We saw this in the wild here: https://bugzilla.mozilla.org/show_bug.cgi?id=1833782