So after digging into this, a solution did materialize. I’ll share it in case someone else may need it some day…
The message NPPM_GETLANGUAGENAME can be sent to Npp to request the language name string for a value of the LangType enumeration. This enumeration ends with the value L_EXTERNAL which corresponds to the first external lexer. By iterating from L_EXTERNAL to the limit of external lexers (+15), the (non-localized) name of each external lexer is retrieved and compared to the desired lexer’s name - on finding a match the LangType (or langId) is known. If the supplied LangType value exceeds the range of defined lexers, the string “Normal text” is returned as the language name.
NPPM_GETLANGUAGENAME was added to Npp in version 5.9.3