Not an answer but an interesting difference is that `capture` trims its output, for some reason, whereas `slurp` does not. Feels like it can potentially lead to problems with dealing with processes that genuinely need to output leading/ending whitespace.