E aggiungo: sicuramente hai dovuto usare l'ultimo scenario che ho detto (oggetti Sincronizzazione differenti), perché il idAuto è "di istanza" e quindi in sostanza ciascuna auto deve essere rappresentata da un distinto oggetto Sincronizzazione.

Il problema alla fine è anche di natura concettuale: il lock è su ciascuna auto, è questo che è sbagliato!
Il lock deve essere uno solo, relativo ad un oggetto comune che rappresenta il "parcheggio".

Detto in altro modo: devi proprio cambiare il design del tuo programmino.