I didn't realize that nulling a widget's parent would make it free-floating. I suppose it makes sense. One quirk, not a fault of the script. At least with VR3 (and most likely with VR, too) if you set it free floating while it's already visible it will receive the node changed event and change its rendering as you select different nodes. If you open it and set it free-floating *before* it's been opened, it doesn't receive the node changed event and the body being rendered doesn't change. VR3 has a "Reload" menu action, and that will reload with the currently selected node.
I don't think it's worth trying to do anything about this behavior, but it's worth noting.