Aiming at 100% uptime opens up all sorts of scope issues. Consider that 'failover' does technically cause a small amount of downtime as you restart the session. If you acknowledge that, it throws out most of the current model of fault tolerance from helping you acheive 100% uptime.
It's not different from any other system really. Try designing a car that can drive 100% of the time? Or a power grid that's up 100% of the time.
Would the client go for the cost? Who knows,but that's the client's decision.
Add a little more data on the DNS failover and it would be a good community wiki entry there.