Auch das ShowMessage gehört in den Haupt-/
VCL-Thread rein.
Deine CS sichert ja nur diesen einen Aufruf ab, so daß man Diesen nur einmal gleichzeitig ausführen kann,
aber die
VCL bekommt davon garnichts mit und wird demnach auch nicht gesperrt.
Und zum Thema Resourcen-Schutzlöcke solltest du dir dringend nochmal so Einiges anlesen.
Rate mal was passiert, wenn es zwischen Enter und Leave knallt (z.B. im RestoreFromFile) ... alles (diese CS) blockiert ... für immer.