People don't get hacked - devices get hacked. So all we need is a better chain of trust between two people. This is not a technology development problem as much as a technology implementation problem. And a political problem
Not to mention that most 2FA still uses SMS, which has it's own well-understood security flaws.
OP is still correct. No matter what, humans will remain the weakest link...it's in our nature to sympathize and every one of us has distracted/weak moments. It's just a matter of time; look at the guy who runs haveibeenpwnd...getting pwned.
Maybe a good startup idea would be “local verify” , where you check locally for a client if the online destination is real.