getChannel() always returns invalid handle

Don’t assume that if you have N channels playing that getChannel(x) where 0 <= x < N will return a playing channel.

getChannel() indexes the channel pool that is initialized based on the parameter passed into System::init(). The channel that your sound plays could be any member of this pool.

Just use the channel handle that you get back from playSound().