Ein DB-Update im Hintergrund ist schwierig, da der neue Code ja schon das geänderte Schema vorausetzt. Man müsste die Änderungen dann immer abwärtskompatibel halten und bis zum Abschluss die vorherige Version weiter betreiben. Gerade wenn Backfilling neuer Felder nötig ist, ist das u.U. nicht ganz trivial, da die Daten während des Updatevorgangs weiterhin "lebendig" sind und sich verändern...
Ein möglicher Schritt zu einem stabileren Update wäre es aber, eine Kommandozeilen-Version des Updaters zu erstellen, die nicht durch Timeouts etc beeinträchtigt wird und nicht von einer Browsersitzung abhängt. Bei etwaigen Fehlern könnte man weiterhin ein Token ausgeben, mit dem die Fortsetzung möglich ist (was auch schon beim Web-Updater eine realisierbare Sache wäre).