Hi Stu,
If I Understand Correctly is that you have a Few Vi's Running and when you try to Stop the Program, you want to be able to come out of the Sub Vi Panel. Also you have Described a Complex Situation very briefly so some details are unclear. However, Check these things.
You Wrote "The stop button is greyed out. The run arrow is white with a small black arrow inside. When I move the cursor over it the pop up message "SubVI Waiting to Run" appears."
The Run Button when White With a Black arrow indicates your SubVi is in "Running" State. This means that there is a top Level VI Which is running and has Some Code which will Call this Sub Vi. As soon as a top level Vi is Run, all subvi's called by the top Level Vi go into Running State. You are right, th
e Vi Can Be closed By Close Button. But If you were to Open this VI again You will see the same White and Black Arrow.
What You can do is Use Vi Server Property "Execution State" in A New Vi and run this VI supplying the Path Name of the Problem Vi while you are Having this Problem. I have attached a small Vi Where you can enter the Path Name of Vi you want to Check and run it. It will Give you the state of the VI, Running, Bad, Idle or Top Level. Mind you if your Vi is Not even Open it may give you "Bad"
Now if you get status as running it means it is currently reserved by a top Level Vi for Running.
So to Stop your Program and close the Window you may want to use Vi Server Property nodes to End Execution and Close Fornt Panel.
One Another thing to do to identify the problem is go to "Browse" Button and Look at Vi Hierarchy. Also there is a button "This Vi's Callers". If the Caller Vi Is Open It will show up here. Most Probably Because of Global Variable VI Which is at th
e Top you have a problem.
I Hope this Helps. If you can Post More Details - I am Sure you will get Contextual Help to sort your Problem.
Good Luck!! Baldness can be good Sometimes!!
Good Luck!
Mache