I mean what happens when someone posts to my website in the old server between the time the backup is being moved and restored, right before the nameserver points to the new server? Don’t they get lost unless I shut the website down during the move? Similar situation with email?
Well, busy sites do make such migrations trickier 
What you may want to do in your case is –
-
First make a full backup, copy that to your new server, and restore that. The copy and restore of a full backup may take awhile.
-
Right before making the nameserver switch, generate a new backup, but this time, just a database backup, and then copy and restore that database backup.
Now, even doing the above, you could experience a lost post to your website. Many web apps support some sort of maintenance or read-only mode – you could always enable that maintenance mode for just a few minutes while that final backup is being transferred.
So I might as well separate the websites once and for all right now when they’re tiny instead of trying to separate them later.
Sure, that’s one less step to do later.
So assuming that I might just have to end up installing three copies of Virtualmin for each website:
Hmm, you don’t need three copies of Virtualmin.
You’d install Virtualmin once, and you’d create 3 accounts within it – one for each domain (or, Virtualmin calls them “Virtual Servers”).
it is possible for each client to log into their own account and view only their addon domain, and I can log in as like a super admin and see everything? This all in the free version?
Yup! That’s correct, and the features you described are available in the free GPL version of Virtualmin.
You can see the differences between the GPL and Pro versions here:
http://www.virtualmin.com/compare.html
Two of the more popular features of the Pro version are the Install Scripts (the ability to install apps like WordPress, Joomla, and Drupal (amongst many others) with just a click or two, and the Pro version also supports resellers.
But, the GPL version is quite functional, and many shared web hosting providers happily run the GPL version.
The cloud server initially comes with 1 gig of ram, so I can split into three virtual machines with 256 mb, 384 mb & 384 mb or however I want as long as they total 1 gig
Well, I’ll be honest – I think you’d be better off not splitting that up.
there seems to be lots of wrong information everywhere that Virtualmin is a resource hog
Virtualmin itself is small… the process takes about 40MB on my system here. And it can be configured to use less than that if desired.
However, other services in the stack can use a lot more RAM… ClamAV and SpamAssassin are both fairly important for email users, but those daemons together take up over 200MB of RAM on my system.
MySQL and BIND can each use a bit of RAM too.
Now, there’s ways to tune them to use less RAM… there’s a whole documented written for assisting folks in tweaking systems to use less RAM.
But, were you to use just one server with 1GB of RAM – you wouldn’t need to do most of that tweaking, and because of that, you’d see better performance for all the services running on that server.
Sure, you could create 3 separate VPS’s – but I think you’d see better performance making just one server, and having your domains share the resources on that one server.
Also, note that with anything less than 3GB of RAM, I’d highly recommend using a 32bit OS, and not a 64bit OS.
Using a 64bit OS uses nearly twice as much RAM, and isn’t really going to benefit you until you push beyond 3GB of RAM.
-Eric