use engine for event stream

[#84527846]
more cleanly flush pipes when read end dies

fixes a data race
hijack using engine interface; new hijack api

api now expresses exit status, stdout, and stderr. turbine backend
currently only supports stdout, and has a fake exit status. not worth
extending the turbine API here if it'll just be replaced.

[#84527846]
slight cleanup