Actually, you sorta can do it.
Host your DNS server on the same server as the web server. Instead of having identical copies of the zone, have each DNS server resolve the web address to its local web server. Also set the DNS record in question to have a small TTL.
If one web server goes down, the DNS goes down along with it, and the remote system will only be able to resolve the one that's still up.
The only people affected will be those using the site when it goes down, and then only for as long as the TTL, at most. That said, some ISPs will ignore DNS TTLs and hold onto DNS records as long as they feel like. The only one I knew of for sure was AOL, and they're pretty much a non-player now. I don't know if anyone's currently doing it or not.
You will have to build some logic into your web app so that either the backend data is shared or to make the client always hit the same server. Or, instead of having two web apps running simultaneously, have one check the status of the other somehow and redirect to it if it's up or take the session if it's down.
Also, if no one's ever done this before (doubtful), I claim prior art!
_________________________
Bitt Faulk