Well, I think that's a reasonable idea, but the problem is still actually decrementing the `CountDownLatch` when we start blocking on `pool.getNextConnection()`. As with other signaling approaches, it seems like we'd have to decrement the counter before we actually start blocking, so it doesn't actually guarantee that the thread is waiting before we add a connection to the pool from another thread.

Having written that out, though, it occurs to me that what we're really concerned with is the thread's state. I think this will work if we poll the thread's state and wait for `WAITING`, that should do what we need.