You are not in failsafe, for this you need to press "f". That's the usual boot message telling you how to enter failsafe. And the messages already come from userspace, it's stuck somewhere in the init process.
The /etc/preinit script has exited with success (confirmed by logging at the end of it), and the non-preinit version of procd doesn't seem to be executed at all (confirmed by replacing it with a script to logging and exec the real binary)
It seems that when entering failsafe mode, the shell was launched within preinit phase (the last step of /etc/preinit, boot_run_hook preinit_main), so it never leaves the preinit phase. But during a regular boot, initd is supposed to launch procd afterwards (according to https://github.com/openwrt/procd/blob/master/initd/preinit.c, spawn_procd is supposed to be the callback of preinit_proc which should be a fork of initd itself?).
I'll try to contact OP for a kernel configured with init_debug=4 so that I could gain knowledge of what's happening inside of initd.