Here is a way of doing a sound loop with a scheduled task. The task is started and stopped with a Toggler
that looks like a play/pause button.
sound = Play[(2 t) Sin[2 Pi 2000 t], {t, 0, 1}];
DynamicModule[{state = "pause"},
Grid[{{
Toggler[Dynamic @ state,
{"pause" -> Style["\[RightPointer]", 24],
"play" -> Style["\[FilledSmallSquare]", 16]}],
Dynamic @
If[state == "play",
If[ScheduledTasks[] == {}, RunScheduledTask[EmitSound[sound]]]; "playing",
If[ScheduledTasks[] != {}, RemoveScheduledTask[ScheduledTasks[]]]; "paused"]}}]]
It starts off paused, looking like
Clicking on the right facing triangle starts the sound loop and the Toggler
changes to black square, so while the sound is playing, the display looks like
Clicking on square stops the sound loop.
break = True; Button["Stop", break = False] While[break, EmitSound[Sound[SoundNote[]]]; Pause[1]]
may be useful. Does it work for you? $\endgroup$