Hast du jemals deine Instanzenhandles ausgewertet? Die sind alle die Lade-Adresse des Hauptmodules im eigenen Speicherbereich. Meist $400000
(seit
Win32 erstmals rauskam ist dies so)
Wenn dann muesste es schon die Thread-ID oder so sein. Aber Mutexe sind ja grade deshalb langsam, weil es Kernelobjekte sind. Es muss der Thread ja in den Kernel-Mode jumpen und wieder zurueck. Das kostet mindestens 800 Zyklen.
Nachtrag:
Rueck mal ein paar konzeptionelle Details zu deinem Ansatz raus