What is the best choice for MySQL high availability (zero downtime)?
There is not such a thing as 100% availability. Even big providers like Google or Amazon only guarantee "three nines". The most critical systems tend to give you high availability "five nines" ("guaranteed" is different from "measured").

Some software solutions, including MySQL-related ones, can provide you something around 99,999%, but with very specific hardware, network, geographical and infrastructure provider redundancy, and probably suffering a lot of efficiency loss.

Almost all solutions will have at least some (mili)seconds of delay when doing geographical failover, making it not 100% available. Unless, of course, you redefine availability as "online schema upgrades", "floodings-do-not-count" or "hot software patches" which is possible with almost any modern MySQL/cluster-like setup (Galera, NDB, which by the way they are very different solutions).