fix data races in controller

Fix #305
IMO, since this is test code, we needn't worry about the case where WaitForWatchCompletion is called the wrong number of times. (Incidentally, I don't think that remaking the cond fixes that problem. The second call will still wait forever.)