Проблема вашего подхода в том, что у вас крутится нить, проверяющая положение игрока. Чем дольше вы увеличиваете сон, тем меньше ЦП у него истощается, но позже он заметит конец клипа. Чем короче сон, тем быстрее он заметит, но тем больше процессора потребляет ваш поток проверки.
Я не вижу в документах ничего, что можно было бы сказать, чтобы клип зациклился. Единственное, что я могу предложить, - это использовать событие Audio.Ending, чтобы возобновить воспроизведение клипа. Это устранит необходимость в вашей отдельной ветке мониторинга, но я не уверен, будет ли это достаточно быстро, чтобы устранить пробел.
Вы также должны убедиться, что ваш аудиоклип не начинается или не заканчивается периодом молчания.