I think I might know what it is. Haven't tested it out yet though.
Since D3D/DDraw doesn't have a triple buffer mode that throws away frames (I don't think), there needs to be something like autoframeskip, but for when the GPU is behind, not the CPU. Pacman has been my test case, and the original runs at ~60.60 Hz and my monitor is running at 60Hz. The game will need to skip rendering of some frames (or at least swap of those frames) so that the GPU can catch up. If the GPU isn't allowed to catch up, the CPU will be forced to block once the app gets more than 3 frames behind.
I don't have much time to work on this now, but if someone wants to test the theory, see if all games that have sound skipping problems in triple buffer mode have an original refresh rate that is higher than the refresh rate that your monitor is running at. You can run with -verbose on the mame command-line to see what resolution you are actually running at, and look in the tab menu under "game information" to see what the original resolution was.