Oof, good catch. Yeah, when custom events are invoked, it references the "info" array, and the "tacked-on" events as I call them have an info with no matching character in the string to reference.
You're right, a zero-width space added to the end of "hyphenedText" should be the easiest way to fix this.
if(info.Count > myText.Length){ //add extra char to myText for tacked-on event myText += "\u200B"; }
I added this code to the end of the ParseText() event, right before return is called, and everything seems to work fine, now!