I'm having a similar problem. I'm not using smarty - this is an entirely custom coded solution, built using some content management classes I wrote about five years ago, and have been refining since.
In this case, nesting PHP is an integral part of the system, something too fundamental for me to change or hack to create an exception for the text editor.
The gist of it is that there are a series of 'collector' classes which assemble the PHP from various components, and then through that nesting of the PHP vars , the page can be assembled in the last ten lines of the last file by echoing out the top level objects. It works really well, and I don't want to have to rethink it.
In this instance, there is a $Form class within a $UI class, which is then incorporated into a $Content class , which is exists as a child of the $Site class. The CuteEditor was intended to be called as a function of the $Form class, something like $Form->CuteEditor();
However, with the Draw method, it just renders to the top of the page, just like in the above example.
I have developed a decent workaround by containing the CuteEditor in an IFRAME, but that breaks the fullscreen mode. Within an IFRAME, the fullscreen mode does nothing because the frame already exactly matches the proportions of the editor. And then on top of that, there's a bit of a javascript workaround required to grab the contents of the editor, inside the IFRAME, and post it to the processing script.
So - summed up - all I really need is a way to return the class as a variable, and print it when I'm good and ready. Any suggestions?