Revert "Simplify DoubleQueue to eliminate redundant sempahore work."

This reverts commit 52b7b40034ddbb21d06b11ddc4eb6d766b0f616d.

Got the semantics wrong - the sempahore is required so that the blocking thread waits for a signal.