Repeatedly hashing to make it so that lossy implementations just fail sounds like a great idea. Also relying on a single crypto primitive which is as simple as possible is also a great idea, and specifically using blake2b is conservative because not only is it simple but its block size is larger than the amount of data being hashed so asicboost-style attacks don't apply at all and the logic of multiple blocks doesn't have to be built.

Memory hard functions are a valiant effort and are holding up better than expected but the problem is that when they fail they fail catastrophically, immediately going from running on completely commodity hardware to only running on hardware from the one vendor who's pulled off the feat of making it work. My guess is it's only a matter of time until that happens.

So the best PoW function we know of today, assuming that you're trying to make mining hardware as commodity as possible, is to repeatedly hash using blake2b ten or maybe a hundred times. 

Mind you, I still think hard forking the PoW function is a very bad idea, but if you were to do it, that would be the way to go.