Apparently a mistake from copy pasting. This was hiding the actual exit
codes (usually became only 0), so much of the logic around detecting
return codes from children was wrong. This includes runit and stage 2:
runsvdir exiting due to a signal or crash should have prompted runit to
try and start stage 2 anew; instead, it was just proceeding with the
poweroff sequence.
Apparently a mistake from copy pasting. This was hiding the actual exit codes (usually became only 0), so much of the logic around detecting return codes from children was wrong. This includes runit and stage 2: runsvdir exiting due to a signal or crash should have prompted runit to try and start stage 2 anew; instead, it was just proceeding with the poweroff sequence.