why not use total_ticks + offset variable and cycle() and maybe also lock the playback by checking if sound is active with snd_playing()?