This is not a very complete article, but there are some interesting tips, read also throught the comments:
http://mezzoblue.com/archives/2005/10/25/changing_web/
The transfer time depends on what settings you have to do. Mine took about a day, but that was because of the DNS. Ususally you transfer all fils and settings to the new domain, test it and then quickly updated the DB and start using the new server. I have downgraded my virtual server package so I pay just the domain name and made a DNS transfer from the virtual server to the new root server.
Boby