Make a couple of ConcurrentSpec tests work even on slow machines

Fixes #2894

The general approach is to use latches to control execution directly rather than relying on timing. This means the tests no longer need to run on a fast machine. There are still probably other tests that need to be fixed, but they can be picked off when they surface.