Keep the application, Popstring, children, hook structures and
referenced hook data alive through queued execution. Do not assume a
zero Open/Close result signals failure or completion. Avoid reopening
while a previous close callback remains queued: logical state has
already changed, but the old callback can still affect popup resources.
Hook replacement does not change a hook pointer already copied into a
queued call.
Only String has a local getter. The header's getter annotations for
Button, OpenHook, CloseHook and Toggle do not correspond to local getter
implementations.