If you're willing to implement a 3rd vps, you can use something like Varnish or LVS (linux virtual server project) to load balance between your two web servers.
If you can't implement a 3rd vps you could use Linux-HA / Heartbeat (Linux High availability) solutions to fail over your services / ip addresses between the vps'.
The last solution would essentially be the heartbeat service running on both servers, one being the active server holding the IP address. If either service detects a failure in the other VPS, the heardbeat service would migrate the IP addresses and whatever other services you need to the formerly passive VPS.
Slightly more complicated, but would save you money on a 3rd vps.
The advantage of the 3rd vps is that you can load balance between the two and your capacity for traffic is higher.
Mysqlhotcopy seems to be ok. I think it basically locks a database, and then copies all the database files, and then unlocks it. So it's as fast as the copy operation.
I've only run it on small databases, so it runs in less than 1 second. But if it's a large database that takes awhile to copy, it's possible you could get hangs and timeouts on inserts & updates while it's locked.
I'm using nginx, and I know it can do load balancing as well. The down side is you've got to keep the two systems in really close sync, then. I don't think 10 minute syncs would be good enough. And unless I'm missing something, you've got a new single point of failure for the node that's controlling the load balancing and proxying traffic.
Next, you must choose a web hosting company to host your site for you. Hosting prices vary from $5/month on up depending on the nature of your site and the amount of traffic you expect; extremely popular sites can expect to pay for a more expensive plan, or to pay extra bandwidth charges.
Web Hosting Talk offers well-established forums in which to discuss the quality of various web hosting providers.