Bè una soluzione potrebbe essere quella che tu hai accennato di usare le variabili booleane , ma in tal modo l'altro thread "fermo" sta in "attesa attiva" non è ottima come cosa..
potresti magari tenere i riferimenti dei due thread in modo che ogni thread abbia il riferimento dell'altro e ognuno nel propio campo istruzioni sia in grado di dire "bene , è passato X tempo ora avvio l'altro thread e mi blocco"..