I develop tools in Autodesk Maya.  Many of the tools I build have simple windowed GUIs for the animators and modellers to use.  These GUIs often contain what you'd normally expect to see in any basic window; labels, lists, menus, buttons, textfields, etc.  However, there are limitations to the complexity of the UIs you can build with the available tools, specifically in the types of available widgets.
I'm interested in using some of the more advanced wxPython widgets such as the ListView (grid), Tree, etc.  This would involve using a complete wxFrame (window) to display the whole UI, which would essentially mean that window would no longer be tied to Maya.  Not a deal breaker, but it means when Maya is minimized, the window won't follow suit.
I've tried something like this before with tkinter as a test, but found that it needed a MainLoop to run in its own thread.  This is logical, but in my case, it conflicts with Maya's own thread, essentially making Maya hang until the window is closed.  This is due to the fact that Maya runs all scripts, be they MEL or Python, in a single thread that the main Maya GUI shares.  This is to prevent one script from, say, deleting an object while another script is trying to do work on the same object.
wxPython has this same "mainloop" methodolgy. I'm wondering if there's any way around it so that it can work within Maya?
I don't know if there is a way around a mainloop for the gui, since it is needed to handle all event chains and redraw queues. 
But there are several means of inter-process communication, like pipes or semaphores. Maybe it is an option to split your Maya extension into the actual plugin, being tight into maya, and a separate application for the gui. These two could use such means to communicate and exchange model information between plugin and gui.
I'm not sure, however, if I can really recommend this approach because it very much complicates the application.
You could have a look at IPython, an interactive Python shell, whose dev team has put some effort into integrating it with wxPython. They have some way of interrupting the event loop and hooking into it to do their own stuff.
Using external GUI libraries to make user interfaces in Autodesk Maya