Well, the reason I'm thinking resource limit is that this only occurs when busy, and then a couple of seconds later it works fine again.
The docs for select indicate that this is the select(2) system call, but the docs for that say the following:
...On error, -1 is returned, and errno is set appropriately;...
and lists the following errors:
... none of which correspond to the no child processes, and leaving me at a bit of a loss
An invalid file descriptor was given in one of the sets. (Perhaps a file descriptor that was already closed, or one on which an error has occurred.)
A signal was caught; see signal(7).
nfds is negative or the value contained within timeout is invalid.
unable to allocate memory for internal tables.