Die Antwort von BUG hat mich letztendlich in die richtige Richtung geleitet. Ich brauche die Rekursion nur dann verbieten wenn, wenn der Lock für darunterliegende Aufrufe nicht verfügbar ist. Da ich zu Hause kein Delphi habe, hab ich das auch nicht wirklich testen können.
Nach einem initialen Test habe ich festgestellt, dass eine rekursive Funktion sich nicht selbst locked, da dies anscheinend bei TMonitor mit berücksichtigt wird.
Auf jeden Fall danke für die Hilfe (die Idee mit dem Hash ist auch nett
)
Wenn ihr wollt kann ich anschließend noch den fertigen Code posten.
LG