Hi @antage, my friend @stuartnelson3 asked me a few questions regarding this change, so don't mind a little bit of peanut gallery commentary:

So, looking at this timeout behavior here, I wonder if the return call is actually safe.  It seems like it could be possible for a race condition to occur whereby the select statement times out in _goroutine 1_ and another goroutine (_goroutine 2_) could publish to ``consumer.in`` concurrently.  Why not have this timeout handler close the channel (``consumer.in``) so that if this occurs, any subsequent writes to the channel will be dispatched in the handler above and then the goroutines eventually exits due to ``open == false``.  Though unlikely and rare, this seems like a more correct way of handling the goroutine's shutdown/cleanup.