TL;DR: The current Mastodon-signup is only removing the confusion of users on first glance, because it either hides the server-choice altogether, or leaves them with a choice that is impossible to make at this point of their Mastodon-journey. Instead, it should introduce them to decentrality on a lower scale, with a handful of handpicked servers to choose from, such that the decision makes sense to them and shows them the merits and fun of the concept instead of scaring them away. Ideal would be to give them a sense of agency. Then, chances are higher that they consider migrating again in the future and eventually internalize it as a permanent option of the digital world.
I think account migration will have to come in two waves. It would be far easier to migrate accounts that are federated. That should be as simple as name swapping comments and posts and assigning them to the opposite servers while handing over user data.
The hard part is with servers who do not federate. Two solutions exist. One would have a data hop. It’s very likely that defederated servers would contain some link somewhere between federated servers. So the original server would pass data through one or two other servers to get to your new destination server that otherwise wouldn’t receive that data.
The other solution involves allowing a user to download their content with a key from the server and then present that to the new server. That data may need to be encrypted or have verification somehow to prevent tampering before reuploading it.
Any of these solutions will probably require manually approving and sorting through of data. The good news is that you can make requirements to say that users should have so many upvotes or whatever to receive a transfer to your platform. So their backup of data can sit still until you’re deemed worthy of transfer.
I’d say that data backups on your phone should definitely be an option regardless.