Thanks for reaching out and taking the time to write us such a detailed post. I am going to tackle everything I can here, but since there is plenty to unpack forgive me if I miss something.
Here we go!
This is something that is going to require some research on my part, so we will revisit this. (This question may justify a new topic in and of itself.)
This can be done by redirecting users in a rule. It will require the user to enter information before continuing.
You could also do as you say; redirect a user to a special login page after authentication and have them update information there.
I have not performed a scaled bulk user import first hand, and I cannot speak from experience on that. This is precisely what the Community if for, and could require its own topic to poll experienced community members.
Outside of that, I can say there are several options for migrations. I would point you to this topic where I wrote on different strategies to accomplish a user migration. Generally, the route you take is going to be determined by your desired UX (to password reset or not to password reset, that is the question ).
Account Linking will allow your users to choose their preffered method. It uses email to link the accounts.
This is a blurred line, and it certainly gets crossed. According to our user_metadata/app_metadata docs, “We recommend against using these properties like a database. They should be used for identity related information.” If you think you would use something for authentication, in a rule hook etc., then it could be stored in user/app metadata. Take a look at the link for more information (although your judgment is going to be the final say).
If you were to import you users to a custom Auth0 DB, then turn on account linking, would this solve your problem? It does seem as if you cannot import social because of the ownership by an outside IDP.
Thanks for reading and please let me know if you have further questions.
Also one tip, if you break up your questions into individual topics they are typically easier and quicker for us to answer.