If a step writes some output and finishes, the reply can reach the client before the status that carries the text. Currently in that case the client discards it, or even never receives it if the system is shut down. This is ok for "interactive" output, but unexpected behavior for the "transparent" mode in which we want galp to be as invisible as possible and output preserved as-is.
Relatedly, I am unsure that the pool shutdown really ensures that log files are completely written out.
[x] We are still missing the real interactive output.
Exceptions during a step are logged outside of the redirected section, and therefore not redirected nor saved.
[x] We decode as utf8 before sending because we reuse parsing logic that wants a string, but badly encoded data should probably still be forwarded.
In non-transparent modes, we don't do the line buffering and sanitation we should be doing.