This will cause us to flush all pending output if the command fails, right?
I wonder how confusing it will be to have a command print a message about how it failed and then have a bunch of other buffered output flush.  I don't have any better proposal though... I suppose it's unlikely for console commands to run in parallel with other commands.