This only happens on macOS. On Linux, for example the + ls command and the output of the command is below it. But on macOS the output is sometimes above the + ls command. I think this was happening with Xonsh as well.
It's some kind of a mismatch of stdout streams, or perhaps some flush issue.