Rekursion scheint wirklich der einzige Weg zu sein, ...
Das ist keine Rekursion!
Die Funktion ruft nicht sich selbst auf, sondern du erzeugst einen timeout der irgendwann die Funktion nochmal aufruft. Eine Rekursion wäre hier auch völlig unangebracht.
Struppi.