In #1 the first line of the first method will output a message to the next page that is displayed to user after the processing has completed so this is a nice simple way to inform that user that they have an authorisation issue, it doesn't have to be a 403. You could do more processing and provide more meaningful messages that reflect the actual access issue....
Patch is successful with caveats
instead of using text or articletext the correct variables are introtext and fulltext.
To note in one test both introtext & fulltext did not work together but worked successfully when patching them separately. i concluded that only happened when updating text that was entered into site editor manually and not designated ...
There is no detail about your environment and each environment can be very different so this general advice regarding the steps you should consider.
I think you should break down the migration into smaller tasks(update Joomla, update PostgreSQL, Upgrade to Joomla 4) and perform tests migrations on a copy of your site until you are sure it all works rather ...
Ok I found the reason myself.
Joomla 4 uses the namespace to detect the components name and creates the option=com_xxx_yyy from it.
So a namespace like
Vendor/Component/XXX_YYY results in option=com_xxx_yyy
Vendor/Component/XZYZZZ results in option=com_xzyzzz