The default handler for the "loop" event provided by Decker looks like this:
on loop prev do prev end
This handler is why the background loop plays forever by default; every time the loop ends, this function asks for the same sound to be played again.
If you write a deck-level script (File -> Properties -> Script...) which defines a replacement:
on loop do 0 end
Then the loop will stop on all cards that do not have their own "on loop ... end" handler which overrides the above.
Does that make sense?