Wenn Du Deinen Code in der Console abfeuerst, dann macht er genau das wie man es erwartet, er wirft in Deinen Zeitabständen die echos aus.

Wenn Du die Seite mit dem Browser ansurfst, passiert genau das gleiche nur dass der Browser das Ergebnis erst nach dem kompletten laden der Seite präsentiert (was eigentlich manchmal bisschen doof ist *g).

Ich weiß nicht genau was Du vorhast und es wäre mit Sicherheit keine schöne Lösung, aber man könnte theoretisch mittels
meta http-equiv="refresh" content="10; url=...
den Browser nach dem ersten Laden dazu verleiten auf die "Eigene Seite" einen Reload auszuführen (Wartezeit 10 Sekunden) und dann mittels hidden Post Request den Rest generieren.

Keine schöne Lösung und ich schäme mich jetzt auch, hier so etwas zu posten