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.
Merge pull request #2901 from richdougherty/concurrentspec-timing

Make a couple of ConcurrentSpec tests work even on slow machines