Most of the time, when the 2nd wait is queued, the background thread has not picked up the first wait yet, so it just cut in the line as expected. However, if the 2nd request is called and the background thread is already in the middle of waiting, it will get signalled instead. Before SERVER-42335, it will cause the future to become ready since it was not propagating the signal properly. After SERVER-42335, it will cause the test to hang because it is waiting for the future of the 2nd wait and was not expecting the 1st wait to "consume" the wait.