"Ursache: Die PHP Session-Einstellungen (gc_maxlifetime) wurden nicht korrekt gesetzt, wodurch der Server die Session-Daten vorzeitig löschte."
Das sehe ich nicht so, den maxlifetime beeinflusste alle Cookies.
"Eingeloggt bleiben" erfordert zwei extra Cookies. Einmal für den Login selbst und die Uhrzeit, also die Einwilligung, dass der User das möchte. Dieses Cookie, nur dieses, hat eine sehr lange Laufzeit! 3-4 Jahre.
Das zweite Cookie beinhaltet die Logindaten. Aber nicht die echten Zugangsdaten, sondern anonymisierte, die mit jedem Zugriffsversuch / Klick auf einen Link geändert werden. 3-12 Monate. Startet ja mit jedem "Klick" neu.
Jeder Klick erzeugt neue anonymisierte Daten. Werden in der Datenbank gespeichert und setzen ein neues Login-Cookie mit den "Zugangsdaten".. Nur die Kombination aus beiden Cookies ist gültig. Klaut einer die Daten, dann ist er je nach Einstellung der maxlifetime raus, also nach z.B. zwei Stunden. Oder früher, wenn der eigentliche Kunde das System nutzte und durch einen Klick die anonymen Zugangsdaten geändert wurden.
Wenn das nicht passiert, könnte jeder die Session übernehmen, der zufällig, wie auch immer, an die Cookies kommt!
Der Wunsch "eingeloggt bleiben" ist kein Wunsch von Deinem Server, sondern ein privater Wunsch vom Kunden. Also muss dieser Wunsch auch privat beim Kunden hinterlegt werden. Ist auch Thema der DSE. Cookie setzen wegen 6/Abs1/b DSGVO.