I have been using RentPBX for 3 years, and have only experienced one outage. That was explained to me as a failed power-changeover switch at the Dallas DC, and the same kind of failure could occur anywhere, which is why I believe the wire-line carriers still have battery backup, at least in major centers.
That being said, I have two servers in two different cities with identical setups, and all terminals use a fqdn to point to the server. Changing over involves changing an entry at Dyndns, and rebooting the phones, and redirecting the DID's to the proper subaccount at VOIP.MS
For backup, I run the FreePBX backup every couple of days, and download the backup file onto my local PC, and then upload it to the second server, and from there do a restore. Change the trunk settings for the subaccounts at VOIP.MS to avoid duplication of connections, and the servers match. The only thing at risk is voicemail or changes I might have made to configuration since the last restore.
I know it's not perfect, but it works and is inexpensive, for a customer who has 60 phones in 9 different cities. No opportunity for a local server, because if the internet goes down at that one location, they would lose their entire phone system.
One other thing.. set the VOIP.MS failover to a cell phone at each office.
And one more - use follow-me to route calls to a cell phone if the individual office loses internet. If the server doesn't see the extension, the call will forward immediately.