Issue 229

This fixes #229

I've made some improvements to the robustness of the timing tests, but more may be needed in the future.

1. Stopped testing for max time waited on a DelayedConstraint. It's not part of that constraint's contract that it takes less than any specified max and the tests fail under load.

2. Use an AutoResetEvent for waiting rather than Sleep in some places. After experimentation, I found it was less variable, especially on Windows. (All approaches are more consistent on Linux)