Given that we're introducing pause and unpause calls, would it perhaps be better to have calls to pause and unpause several channels at once?
That would work too.
However, I'm looking at the OSX/iOS audio toolbox API, and it doesn't have a synchronized pause call. (There's an "unpause at a given time" call, but using that to do synchronized unpauses would require a bit of guesswork.) So I suspect that the Mac/iOS implementation of this stuff will fall more naturally into a synchronized-play model, where the app code synchronizes its decoding of sound data to the audio queue rather than pausing the audio queue itself.
Possibly I'm overthinking this, since I haven't looked at how the current Mac libraries do it. :)