Robust Mysql failover using free tools
There are two tools that jump to mind, with the caveat being I haven't tried either, just have read about them. Percona's* XtraDB Cluster (based on Galera) and Percona Replication Manager (PRM).

PRM is based on a single-master with multiple slave nodes. It uses pacemaker to handle the failover. I can't answer how it handles your last two bullet points, but as to a flapping state, read about GitHub's experience. That experience and subsequent posting caused quite a commotion, questioning the validity of automatic failover. Here is one such post that links to some of the others.

The basic gist is, be careful with automatic failover. You might save yourself a lot of time restoring service by monitoring the state of the master and getting notification to do a manual failover.

I don't know much about XtraDB Cluster, but from the documentation, below is a list of features. However, you require MyISAM support, which XtraDB Cluster/Galera does not handle.


  
  Synchronous replication. Transaction either commited on all nodes or none.
  Multi-master replication. You can write to any node.
  Parallel applying events on slave. Real “parallel replication”.
  Automatic node provisioning.
  Data consistency. No more unsynchronized slaves.
  


disclaimer: I linked a lot of Percona stuff, but I am not affiliated with them in any capacity.