It's all HTTP/1.1 at the application layer, still. The HTTP/2 and HTTP/3 are mostly a binary encoding scheme (to use on top of good old TLS on top of TCP) and a different transport protocol (on top of UDP instead of TCP), respectively, but their goal is to carry good old HTTP/1.1 messages around.
Not exactly. HTTP now has multiple substrates some with different features and documents describe the mapping of HTTP onto each substrate.
It depends on if your tools make it easy. For example in Go the default http client and server basically just enable HTTP/2 by default.
My understanding is that bradfitz championed that.