I feel that listing Zygarde as the top-most threat to cover and Tang as the sole true counter is really overselling a bit the snake's abilities. He might be the hardest to handle, but failing to properly counter Ash Greninja for instance will yield far more disastrous results, and even if he has only one set, he can still surprise as Protean Greninja, which has a lot of possible sets and different counters.Do we build in the same tier? Zygarde easily tops the “teambuilding checklist” of what to cover. There is either throwing on Tangrowth or you have to have numerous measures/risk being weak to semi-common variants. Tangrowth at least is close to a blanket answer, even if Toxic and Z Drag can be irksome, but aside from that you’re really grasping at straws because of the natural versatility it has that I alluded to (see: point on it only needing Thousand Arrows, read more into posts from people like ABR and even the OP itself, too).
There's a lot of pro-ban people that defend Zygarde to be broken because you need two checks for it, but that's probably the case for all other major OU threats. As it has been said, there's a ton of common mons that can check sufficiently well most Zygarde sets, and you don't have to always rely on its hardest counters like Tangrowth, but also Clefable, Mew, Reuniclus, Slowbro or Avalugg. Even Heatran can Toxic it on the switch.
Sure, he can hax his way to win with Glare, but so can Greninja with flinching on Dark Pulse to beat shakier counters like Toxapex or Ferrothorn. But you'd be hard-pressed to beat any defensive Landorus-T without severe haxxing, and it's still pretty damn common despite having fallen a bit of out flavor.
Zygarde lacks a lot of immediate power, power that previous suspected and banned pokemons had, to be considered broken. He's far from winning on a single wrong guess, and you should most of the time be able to formulate an appropriate response once you know his set.