"when the caller front window closes, but I'd prefer to stop it when the caller stops"
A property node configured for "Exec.State" will return "idle" when a Vi stops.
"The second problem is to spot which of the caller's controls are Listboxes?"
In the attached VI I use a method inspired by Jean-Pierre's "save -all" code.
I get a list of all of the FP controls and then use a "to more specific class" to attempt to type cast the refnums as a List box. If no error is returned, the control is a list box.
You could also parse the type descriptor, but that approach is prone to LV upgrade issues.
Both of these ideas are illustrated in the attached.
I hope this helps,
Ben