Move the timeout
Move the timeout

Had the right idea, but in the wrong place.  This moves the timeout to
the input-reading side.  Upon timeout, check to see if the process
still lives, and if so, keep waiting, else close all of the channels
and return.

elastic/runbld,elastic/runbld,elastic/runbld,elastic/runbld,elastic/runbld