Primeiramente PARABÉNS, você foi incrível. Você fez coisas que muito PLENO não faz. Dividir o problema em etapas.
Você pensou dividiu o problema analisando cada coisa, teve um bom raciocinio lógico de como resolver o problema.
Fui ver o porque somente 1 post estava ocasionando o erro. Se a função estivesse errada teria que estar dando problema nos outros posts também. Mas, *descobri que não necessariamente.
Isso foi demais, nem tudo em programação é o que parece e sua analise foi minuciosa em detectar a causa.
O que fiz foi editar o texto do post retirando o span. Assim quando a função fosse truncar o texto, não iria mais cair nessa tag em aberto e o layout iria estar normalizado.
Novamente parabéns, em primeiro lugar resolver o problema do cliente, e nem sempre da melhor maneira possivel, mas sim resolver.
Depois fazer a solução mais adequada, se esse pensamento venho de você, quer dizer que está no caminho certo. Muito orgulhoso do seu progresso, vai longe desse jeito.