I only know the best answer to question 1. Since you're using google for mail, I'll pass on that one.
As far as hosting goes,
-Add the new domain as fully hosted, USING THE SAME SSH/FTP user as the old domain.
-Once that's complete and the domainb.com directory shows up in ftp or ssh, then go into your wordpress dashboard and update the domin name there first. Saving it will give you an error message and break your site.
-Next, and you were on the right track, rename the domains folders:
domaina.com -> temp
domainb.com -> domaina.com
temp -> domainb.com
Your site should now be back up unbroken. Once you have tested thoroughly and know that you have no need to switch it back, delete hosting on domaina.com and set up your re-direct.
If you will eventually be getting rid of domaina.com then you should also add a domainb.com mysql hostname on the mysql tab in the panel. Wait awhile, for that to propagate, and then go edit you wp-config file replacing the hostname.