To follow Claude Code and increase conversation quality, we should queue messages briefly until the end of a content block and then insert it there. There is a related issue where interrupting a stream (e.g. via Ctrl+C) should wait until the content end block. Perhaps we should have a "Soft Interrupting" state and then when the user Ctrl+Cs again we hard interrupt.
Related #520 — there is potential for some general cleanup / refactor / redesign that solves both.