Классический костыль:
t = setInterval(()=>{
// какое-то непотребство
if (is_success) clearInterval(t);
}, 200);
В качестве улучшения можно считать попытки и прекращать выполнение через минуту, ибо всё равно нет смысла долбиться в стену.
if (cnt>300) clearInterval(t);
В качестве ухудшения можно не проверять успешность непотребства, а тупо применить его определённое количество раз, но это уже совсем для ленивых.
P.S. Да, костыли - это плохо. Но зато быстро и без напряга.