Von mir gibt erst mal eine Anmerkung: PHP: echo - Manual. Kennst du die Syntax echo <<<SYMBOL
Ganz viel interpolierter Stringinhalt
SYMBOL;
[/PHP]
? Damit wird dein lesbarer. Außerdem solltest du dir für solche Sachen mal überlegen einen Template-Mechanismus zu verwenden.
Dann noch eine Frage: Wie sieht denn der generierte JS-Code aus?
Und der eigentliche Denkanstoss. Kann es sein, das Javascript nur einen Thread hat und damit nur ein Timeout unterstützt? Baue dir doch eine Lösung, die die Angaben zum Fenster in einem Array speichert, zusammen mit dem Zeitpunkt des Öffnens. Statt dem Timeout definierst du ein Intervall, das regelmäßig durch das Array geht und die Fenster schliest, wenn die Lebenszeit abgelaufen ist.