decode() rewrote every <channel|> into </think>, including the close of a
channel that is not the thought channel. Only close a thought channel that was
actually opened in the decoded text; other channel markers are left alone for
the caller to strip.