Two fixes from latest Codex review:
1. Truncation dedup: compare lastSentText against the truncated text (not the full
rawText) in both schedulePatch and flushPendingPatch. Previously, once a reply
grew past textLimit the guard compared the growing rawText against the stored
rawText, so the post would be patched every 200 ms with the same truncated body
— running into avoidable Mattermost rate limiting on long responses.
2. Orphan cleanup order: in the final-edit fallback path, deliver the replacement
message first and only delete the orphaned stream post afterward. If the fallback
send also fails, the user keeps the partial preview instead of losing all visible
output.