More errors while interrupts disabled / inside an interrupt

This affects yet more waits.  I think the last change fixed some Prince of Persia games, at least.

Also fixed some audio error codes I ran into while testing.

The test does not pass perfectly - I don't really understand the audio behavior fully, which is not passing, but I've approximated it on the safe side.  The IO behavior is also a bit strange, something is funny with `sceIoWaitAsyncCB()`.

-[Unknown]