Das könnte so funktionieren:
Entferne erst alle HTML-Tags aus dem Text und speichere ihre Position.
Kürze den Text auf 500 Zeichen und füg die Tags wieder ein.
Wenn ein Tag geöffnet wurde, aber aufgrund des Abschneidens nicht mehr geschlossen wurde, schließe ihn am Ende des gekürzten Textes.