PoW is almost perfect except the energy cost and the mining pool.
The energy cost is integral to PoW-based consensus security. Diverting part of the energy cost to "useful" computation, takes away from the security of the network as means of payment. But maybe this property is not as fundamental as it seems, so it will be interesting to see a fleshed out proposal on how to approach this matter from a different angle.
I'm not a fan of the necessity of mining pools for stable mining income either; however given the free choice and ease of switching mining pools it's less of an issue than it might appear to be at the first glance.