Thank you for writing. This is a really good article.
Regarding websockets, I've had some trouble with compatibility in the past. When we built a game with a server based on dotnet and a client based on unity, we realized that WebSockets aren't supported by all browsers and devices, which can make them unusable in some cases.
Due to their persistent connections, WebSockets also consume more server resources than other communication protocols in terms of scalability and resource consumption. I agree that "Low communication overhead because we do the handshaking once at the start." is a great thing, but I would also like to keep that in mind if someone decides to build a 500K CCU game.