Not bad! It captures some of the awkward mechanics of managing a multi-threaded test scenario. My big problem with them though has more to do with handling rendez-vous. It can get somewhat gnarly to code multiple threads that need to partially synchronize around certain guard conditions. Locks and Barriers are useful concurrency primitives for this purpose but it's still rather awkward.
Jeff: Give me a use case and I'll see what I think. Right now I'm not sure what you mean.