But then what happens if the person using said engine decides to add some long ass word towards the end of their wrap around length?
Trust me, you're not going to need to worry about that.
My suggestion is to break the text into a series of words, checking the length of each word against the width of the text area (I'd use a size in pixels rather than a character count, when possible). Let's assume a two-line, Pokémon-esque text system. Rather than going the route that many Game Maker fangame developers take (calling a textbox scripts with up to two lines passed to the script at a time), I'd send the entirety of a paragraph (separate handling only for things requiring or no longer requiring user input) at once, breaking it up where you specifically want it to start a new text box.
Then I'd break the sentence, as I suggested, into a series of words based on white space separation (spaces should really be all that's necessary, unless you
want to account for line breaks), which would then be stored in an array of strings. I'd then calculate the length of each string as my text box is cycling through, keeping track of how many lines have been shown. On an odd number of total lines, I would automatically scroll to the next set (or in the case of Pokémon, clear the current text box and start at the top line again), while an even text box would have me present the player for a "press A to continue"-style prompt (like the blinking cursor).
Granted, with this method you'll also want to keep track of the beginning of each line (so that when you scroll or start anew, you start from the correct index within the string).
Anyway, hope that made sense, I'm kind of out of it between drowsiness and a cold.