I think guessing "lang" from lang-mode is perfectly fine.
It's not. And increasingly less so. But you're right it should be perfectly possible to ask a mode: "what programming language, if any, are you for?". But it's not. It's a big discussion, I won't go over it.
For the reason noted above, there is no "concise solution" to choose, all derived modes from tex-mode need to be mentioned explicitly in one way or another (either to make the guess correct, or to provide manually a language id).
The solution I gave is more concise in the number of elements of eglot-server-programs. And explicit in what it is doing.
Fine, I can change the patch so that texlab will still run on modes that it doesn't support (plain TeX and ConTeXt, etc). Just please confirm that this is the behavior you prefer.
Yes, I prefer patches that do only their stated purpose and no other side effects.
João