Ich glaube so wird das nicht funktionieren. Wie du bereits angemerkt hast ist die
VCL nicht Threadsave. Und das heißt konkret das die
VCL (Application.ProcessMessage etc.) nur ordentlich arbeitet wenn es in dem Thread arbeitet in dem das Modul geladen wurde. Der Thread muss also außerhalb der
DLL erstellt werden so dass, das Application-Object und die Initialization-Abschnitte innerhalb der
DLL bereits in diesem Thread ausgeführt werden (oder mit anderen Worten: Die
DLL darf muss "denken" das sie im einzigen Thread läuft)