I looked into some of these issues when trying to solve a wxWidgets bug some time ago. I never got it sorted as to fix the bug will require the wxWidgets App to run in a separate thread. I got so far with this but then stopped, because of the required changes to the core routines - basically it required that plplot passed all info down to the drivers, rather that the drivers calling upon plstream contents. I got quite far with this, but then found that the plfreetype used so many globals that it became a nightmare and I stopped.
Maybe geting the interactive drivers to be able to run in a separate thread might be a useful step - it is, however, still a lot of work.