Tach!
Warum wird so oft durch die While-Schleife gelaufen? Meinem Verständnis nach hätten es nur 2 Durchläufe sein dürfen.
settimeout() wartet nicht. Es startet lediglich die Eieruhr und der Code an der aufrufenden Stelle läuft sofort weiter.
Wie kann ich sonst eine Verzögerung einbauen? (Es sollen später sichtbare CSS-Transitions ablaufen)
Indem du zeitgesteuert und nicht while-gesteuert arbeitest. Dazu kann eine Aufgabenwarteschlange helfen, die die Timertick-Funktion abarbeitet. Vielleicht solltest du dann auch auf setinterval() umsteigen.
dedlfix.