So the thing that needed to be fixed was hitting the open file limit. Second try at the code was using a connection counter shared between all individual connection pools, so that once the limit was hit, no new connections would be established, only reused.
The flaw is obvious when it's written out like that. This allowed some pools to hog the entire limit, and prevent connections to any other servers from being established.