I was having the same issue, this is how I fixed it.
As we are not able to get to Single User Recovery Mode by using the key sequence, Command + R + S at startup to run csrutil disable
, it is not taking you to Single User Mode.
Start by booting the computer in standard Single User Mode using Command + S. Once you are at the command-line, run the following command to turn off the dGPU:
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Then reboot your computer by running:
reboot
The dGPU has been disabled, so we can now access the GUI recovery mode. On reboot hold Command + R, and it will take us to the GUI recovery mode. Once there, click on Utility menu and open Terminal, here we can run the csrutil
command:
csrutil disable
To make the dGPU fix persistent through the next update, make sure to run the nvram command a second time, then reboot by running:
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
followed by:
reboot
Boot into Single User Mode with Command + S to continue with the kext moving procedure. Once done, go back to GUI recovery to enable csrutil
, then reboot.
Once Mac fully boots, run nvram one last time as sudo:
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
and do multiple reboots to test the machine boots back up properly. I have no issues now.
After over an hour on the phone with Apple, it was suggested I try to use Migration Assistant to restore from backup. That worked for me.
EDIT: While it did work, there was a major issue: While trying to run Python/Jupyter in PyCharm, I repeatedly get malware warnings that have to be manually suppressed, individually. I mean, every file associated with a Python package in the virtual environment seems to be identified as possible malware. I called Apple about the issue, but no one knew how to globally suppress the malware warnings. There are way too many files to manually suppress them all.
I found an alternative, create a new project in PyCharm, copy in Python/Jupyer files (not packages, but files I created), then add the packages needed to run everything.
Best Answer
The problem was that my keyboard was not a QWERTY one so I needed to hold the fourth key (which is not a R on my keyboard) for it to work.