It seems the qa_shorten_string_line() function actually removes words at position ~66% of the string. Then it adds the ellipsis right there. Sadly, in order for this to make sense the whole text is needed, so cutting using the LEFT function is not a good idea. That would only work for the case in which the ellipsis is at the end of the text.

So the solution you suggest in your other answer about fetching the whole text of the question is correct.

The issue you're facing with HTML I think it has nothing to do with the plugin. The reason for this is that qa_viewer_text() should actually return a non-HTML string. So stripping HTML from it should be unnecessary. I bet you are using a viewer module that is not respecting this expected behavior. The fix should be simple, as you just need to strip the tags in that function.

So there is no way for a post with 'html' format to avoid getting their HTML tags stripped. You might have edited a plain text post directly from the DB, added an <audio> tag and then forgot to update the format from '' to 'html'.