Reading again, I see something I overlooked before. The message you got from the AvantGo client is
idle too long - not a timeout per se. I am guessing that the AvantGo client is still timing out in a way, except it doesn't complain because by that time, your output is complete. Even if that's not entirely correct: I think the answer is in how that client works. It may make uncommon assumptions.
Makeshifts last the longest.