I like LSP in general. I have a problem with your narrow view ("in a way that the LSP interface is supposed to be used", whoever defines what "supposed to be used" means) that leaves the TM infrastructure behind for anyone that depends on it. TM is still active but there is no provision that TMTags is anywhere consistent with LSP data. And the user is going to interact with both backends in your current design.
What you call "Frankenstein LSP" is my attempt to envision an LSP integration that does not regress those other use case by ensuring a consistent backend.
Please answer these two questions: - How do you plan to handle other various goto-definition cases that don't come from a document context? - And for call tips (mouse over in sidebar symbols)?
Unless I'm reading the LSP spec wrong you cannot use the corresponding LSP interfaces for those. And if you still rely on current TM (ctags parsing) for those then *that's* Frankenstein.
Also, AFAICS your own ProjectOrganizer interfaces heavily with TM. What's your plan on that front? You aren't ending support for that plugin, are you?