Mit "BOOT_ORDER kann die Reihenfolge festgelegt werden.
Das ist ein 32 Bit Wert mit folgenden (hier wichtigen Werten)
0x1: SD CARD
0x4: USB-MSD
0x6: NVME
0xf: RESTART
Der Wert wird von rechts nach links interpretiert.
Bei mir ist "BOOT_ORDER=0xf641" gesetzt, was heißt erst SD Card, dann USB-MSD und zuletzt NVME.
Außerdem ist noch "USB_MSD_DISCOVER_TIMEOUT=500" gesetzt, um die Wartezeit auf den USB-MSD zu verkürzen und den Boot-Prozess zu beschleunigen. Der Default ist 20000 und heißt, dass 20 Sekunden gewartet wird.
Mit "rpi-eeprom-config --edit" kann man die Parameter ändern (das Programm gibt es auch für den RPI4).
Wenn man das mit "-h" aufruft, bekommt man Infos, wie das tickt - eine Integration in das Webif müsste nach meiner Einschätzung mit den Infos dort machbar sein.
[Nachtrag:]
Dann sind bei mir noch gesetzt:
DTPARAM=PCIEX1_GEN=3
PCIE_PROBE=1
Ohne die sieht der PI die NVME beim Starten von einem non-HAT+ device nicht. Der dtparam Eintrag setzt aber nur die Geschwindigkeit auf Gen 3.0 speed - dafür ist der PI laut Doku aber nicht spezifiziert, deshalb die extra Aktivierung, Default ist Gen 2.0 Speed.