Makes the buffering code a bit more explicit (circular buffer, but
blocks until individual buffers get unqueued by OpenAL), and fixes a
bug in the startup of Super Mario Sunshine:
https://bugs.dolphin-emu.org/issues/9811
Fixes the issue on macOS where quitting Dolphin from the Dock causes a
crash report (https://bugs.dolphin-emu.org/issues/9794). I'm not
exactly sure why this works, but it feels right and it turns out to fix
the problem.