The suggestions to find another host are good ones, but that's not what you asked. What you can do is mirror the content on 2 servers, each with a different host. To do that, rsync (or similar) is your friend.
Host the DNS with a 3rd party, with very short TTL (maybe 5 minutes). If one server takes a dump, update the DNS record to point to the other host.
Your downtime will be approximately (a) the time it takes you to realize the first host is down, plus (b) the time it takes to modify the DNS records. And for those whose ISP's DNS servers have already cached the A records, also add the time it takes to reach the TTL so the cached records stale out. (which is why you want a shorter TTL in this case)
Load-balancing through round-robin or failover DNS is more unreliable than it's worth. The best way to implement redundancy across multiple sites/providers is to use BGP anycasting, but that would be total overkill for the scope of your problem.
Some providers will offer such functionality as part of their service, but will usually require that you have both sites with them anyway.
It would simply be easier and cheaper to just find a single good host. Don't let a few sour experiences taint your perception of the entire industry. Just do your research, and you should be able to find a host that you are happy with.
ASTUTE HOSTING: Advanced, customized, and scalable solutions with AS54527 Premium Canadian Optimized Network (Level3, PEER1, Shaw, Tinet) MicroServers.io: Enterprise Dedicated Hardware with IPMI at VPS-like Prices using AS63213 Affordable Bandwidth (Cogent, HE, Tinet) Dedicated Hosting, Colo, Bandwidth, and Fiber out of Vancouver, Seattle, LA, Toronto, NYC, and Miami
DNSMadeEasy has a very cheap service that does DNS failover; it does health checks and will failover to the alternate server (and set of A records) when those checks fail. There are much more expensive options (UltraDNS comes to mind) but given what you describe I highly doubt you'll want to spend that kind of money.
But as has been mentioned here, it's far from a perfect solution. In this day and age I think that ISP DNS caching is generally a problem that is overblown (the vast majority of ISPs don't overwrite low TTL values with higher ones), but it still does occur. And you're pretty much guaranteed that users currently viewing your site will have some issues, whether that comes from end user DNS caching or sessions not being replicated to the failover server. But as something that can help alleviate long outages or as a disaster recovery option, DNS based failover is a simple and cheap option. The paradox is that the kinds of sites that are easiest to do this with are the ones that typically don't need it (i.e. simple static sites or sites with minimal dynamic content); the sites that typically need higher availability are much more difficult to pull off (synchronous real-time database replication for instance is not easy with a heavy used database, especially without dedicated high speed WAN links between the two sites).