Есть там баг, есть. Алгоритм хромает, можно трейсами увидеть (двойные цепочки стартов - остановов). И еще - там ошибка накапливается - на определенном шаге есть скачек.

Лучше пока не вышло. Интересно было бы найти абсолютное решение, которое не зависело бы от факторов: частоты кадров и нагрузки на проц.
К сожалению, в AS2 на редкость бедно и криво реализована работа с объектом Sound(). И вдобавок слушать позицию через SetInterval тяжело, точность низкая.
Пробовал через watch - не получается.
наверное нужно остановиться на 1-м варианте, убрав компрессию.