For the shortest downtime, I've always thought that the key is to fool your local machine (your windows machine at home, for example) into thinking that your domain is hosted at Dreamhost. The easiest way to do that is to set an override in your hosts file - c:\windows\system32\drivers\etc\hosts.
A second method is the "mirroring" method. In that method you set up mirroring so that you access your site via another domain name. This has certain downsides for web application software that has the domain name built into it - it frequently generates urls that point to the "real" domain. Thus, I feel like the override in the hosts file is the most surefire method.
Like you said, the steps are:
1. Set up hosting at Dreamhost
2. Use the hosts override while you completely set up and test your site.
3. When everything tests out, turn off updates to the original site, move data, and change nameservers.
4. Transfer registration (optional and not possible with .ca domains).
Use the [color=#CC0000]3DOM50[/color] promo code for 3 extra lifetime domains and $50 off
More Dreamhost coupons here!