Waiter race fix2

Made the fixes indicated in my gist, and added a test to AsyncAssertionsSpec - tried to follow the style of the other tests there. Builds and passes tests on my machine.