There are a few tricks. Make the UI during ID startup, move it off to the left so as to be invisible.
I don't think the UI is all that slow in terms of response to user events. It does take significantly longer to initialize (it has to load and initialize an SWF).
All of the UI is shown in a Flash panel inside a ScriptUI palette or dialog. With CS4 in ID and PS you can even load your swf into a palette that is dockable (acts like a fully native palette - see the Kuler extension in CS4).
So far I've been able to work through anything I used eval() for in the past. Which is not to say that it can always be done. You do have the ability to call ExtendScript any time and perform an eval() Something like:
com.adobe.cs3.ExtendScript.eval( "alert( 'Howdy' );" );
works just fine.
You can also register callbacks in ES. Using that mechanism you can still use APID for events, for example.
From my limited, totally selfish perspective, PP is the best extension creation toolset to come out of Adobe since ExtendScript.
Rememeber you have access to all that cool flash stuff - you can play videos, sounds, consume web services. How 'bout a palette that shows what's showing in Bridge, and gives you control of bridge as well? Or one that puts up a thumbnail display of your favorite stock photo provider, or... or...
Bob