Contributors contribute their code granting permission to use under both licenses, which means they're granting the patent grant in Apache-2.0.
So, dual-licensing MIT/Apache-2.0 gives you a permissive license with a patent grant and GPLv2-compatibility.
That said, if you want a permissive license with a patent grant and GPLv2-compatibility, a simpler choice is the "BSD+Patent" https://opensource.org/licenses/BSDplusPatent license, which is just 2-clause BSD plus the Apache-2.0 patent grant.
Alternatively, ASL 2.0 with exceptions could have worked to make it compatible with the full assortment of GNU licenses. That's the strategy that CUPS and LLVM chose.
This weird MIT/ASL 2.0 thing (which clearly was stolen from Rust) is a completely asinine idea, because it forces a situation where it's impossible to verify a patent license grant to users and contributors.