Die Zeitmessung mit "now"-Zuweisung fand die auslösende Stelle NICHT. Da mag die Code-Optimierung daran schuld sein.
Nee. Da war die falsche Platzierung der Zeitmessung daran schuld. Wenn man sie zu Beginn und zum Ende der Schleifen gesetzt hätte, dann wäre sofort klar gewesen, dass irgendwo dadrin die Zeit verbraten werden musste (wenn das nicht schon vorher klar war). Und wenn man dann schrittweise in die Schleife vorgerückt wäre, dann wäre innerhalb kürzester Zeit klar gewesen, wo der Zeitfresser sitzt.