smarter timeout handling to improve throughput with slow/hanging sources