Hello Andy,
One of the restrictions of using the UI library from different threads is that panels are only modal relative to other panels in the same thread. This is described in the "Panels and Multithreading" section of the help.
If you need to initiate the display of a panel in a different thread, my recommendation is that, instead of calling InstallPopup from this thread, you post an event from to the main thread, using PostDeferredCall. Then, from the main thread, you can display the popup and it should behave the way you expect it to. You'll also need to post an event to the main thread in order to remove the popup.
Luis
NI