Microsoft really need to provide guidance and a supported method/tooling to remove the Reset requirement in the last step:
"Reset the device. Once you have confirmed the device is registered in Tenant B and the desired profile is assigned, you can now reset the device to join the new tenant. Notify your users when you want them to reset and provide guidelines on how they can perform this step. You can use the Reset this PC option in the Settings app or the Reset feature in the Intune admin center. The devices will be re-provisioned and enrolled to the new tenant using Autopilot."
There are many use cases where this is too disruptive and has a huge impact on the end user. There are plenty of examples out there that use PowerShell scripts and Azure Functions (for secure Graph API interaction) to automate moving a device that would work for moving a device between tenants. Yes there are lots of challenges in this approach too, but if your trying to carve out 20K devices into a new tenant its a lot easier and less disruptive to lift and shift than it is to start from new.