Another solution we implemented was to have a WordPress site up, but only serving a spidered copied HTML version of it in the public_html directory.
Every 2 minutes the site gets fully spidered, dumped into flat HTML files. And if the dump is not successful, because of a database connection or any problem at all, it doesn't get saved and doesn't overwrite the public_html dir.