Did not quite read everything but...
I usually only have one global dummy TEXT. When I want to render text, for instance for individual signs, dialog with NPCs and so on, I copy the string(s) to that TEXT object and use draw_obj(...) to draw it.
IMO that's a much cleaner approach as you don't have to manage text creation, delete and set/ reset the SHOW flag (for example on level change).


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends