Use select in "pool" mode only, timeout will be dealt with in the wait loop anyway.
This way we can activelly "re-motivate" the sub tasks.
Also, print on stderr when an "unexected" errors shows up during select.