fix piping to routers; add a test for stop_on_term
handle when there's a Halt exception on a recver consume