Man könnte sich noch vor und nach die Schlaf-Schleife eine Variable platzieren, über welche man extern abfragen kann, ob der Thread grade arbeitet.
z.B. ein LongBool (nach LongInt gecastet), welcher über
InterlockedExchange gesetzt wird. Und abfragen kann man ihn direkt, über ein ReadOnly-Property. (Lesezugriffe sind dort threadsave)