I'm not sure wether you're using text scripting or the intercation editor, but I believe that in both, StopMusic stops the background music, and since this is a sound, it may not apply. What I think you need to do is use PlaySound(-1); to stop the sound.
[However, though in this case it should be fine, in other cases, this would stop all playing sound effects (channels 3-5), not just one. Is there a way to use PlaySoundEx(-1,4) or something to stop a specific sound? I can't test it atm..]
Oh, wait, I just found this: StopChannel (int channel). Which breings me to this: Is there a function, or a way to create a custom one, which can return which sound a certain channel is playing (somethng like GetCurrentMusic but for sounds). It seems that IsChannelPlaying and IsSoundPlaying aren't quite right for this purpose. And/or a function about a sound- where (channel) is it playing, if anywhere?

edit: If you'll be using Play Music, you need to use musicx.mp3 or any other format as the filename, where x is the number.
[However, though in this case it should be fine, in other cases, this would stop all playing sound effects (channels 3-5), not just one. Is there a way to use PlaySoundEx(-1,4) or something to stop a specific sound? I can't test it atm..]
Oh, wait, I just found this: StopChannel (int channel). Which breings me to this: Is there a function, or a way to create a custom one, which can return which sound a certain channel is playing (somethng like GetCurrentMusic but for sounds). It seems that IsChannelPlaying and IsSoundPlaying aren't quite right for this purpose. And/or a function about a sound- where (channel) is it playing, if anywhere?

edit: If you'll be using Play Music, you need to use musicx.mp3 or any other format as the filename, where x is the number.