The same bug exists on OpenBSD as well. I have already reported this to the developers.
Removing the While(ChannelPlaying(0)); works also on OpenBSD.
I'm now trying to get the OpenAL to work on OpenBSD.
In FreeBSD, OpenAL seems to be in the ports -tree, so using it might solve the problem.