I tested a lot different ideas on bortolanis page, thank you for the direct access, so I could directly debug on the files.
It is always the same problem, some plugins use the onAfterInitialise() event. Even it sounds like that, it is not a good trigger, because joomla is NOT fully initialised. The routing (GET vars) and therefore the new language is missing. The language is meanwhile set per session to the last selected language.
The only way to avoid this, is to change the triggers in the plugins and to replace onAfterInitialise against onAfterRoute.
I even added as test a parameter to load the config without language, but then the plugin throwed errors for having no language. So some plugins, which use both events and dont need the language in onAfterInitialise can now load the config without language (3rd parameter to false)