caching = bingo = this is a much better idea!
Windows Server 2003 or 2008 will do this, or with Simple DNS Plus you can even configure custom retention time for the cache (overwrite the TTL value) and save the cache to disk so it's not just in memory and will be saved between reboots of the system.
Better yet, use GRC's DNS Nameserver Performance Benchmark tool to find which DNS server's are your fastest (you ISP may not always be the best choice, for me I like Google DNS)
Since DNS is a very small amount of traffic, I don't see the point in routing just that over a separate provider.
Using DNS records that get returned from one ISP, while all other traffic goes through another ISP, can actually be disastrous and detrimental. GSLB may be returning the value for a datacenter that is further in terms of ping times over one ISP than it is through another. YouTube does this allot, sometimes you are routed to a datacenter that is "faster" to one ISP than compared with another - if you mix providers, you risk DNS directing you to a slower one.