MSDNにはwaveOutProcの解説として
「関数 EnterCriticalSection、LeaveCriticalSection、midiOutLongMsg、
midiOutShortMsg、OutputDebugString、PostMessage、PostThreadMessage、
SetEvent、timeGetSystemTime、timeGetTime、timeKillEvent および
timeSetEvent を除き、アプリケーションでコールバック関数内からシステム
定義関数を呼び出さないようにしてください。ほかのウェーブ関数を呼び出す
と、デッドロックの原因となります。」
とあるのですが、素直にこれに従うと能動的な処理ができなくなり結果的に
システムのメッセージ伝達がビジーな状態となると音が一瞬途切れるという
ストーリーのようです。上記解説を方向をしめす指針と解釈すればMMAPIでの
動作は劇的に安定するというのが落ちのようです。