Overall, using promises don't actually improve the situation that much, since the set of outstanding queries is constantly changing.  This whole waitForAResponse thing frightens me, but I'm just using what was already there (something that diff seems to have a hard time recognizing).