Turns out setting a QMenu parent *not* in the constructor leads to very strange behavior. All parents are now set in the constructor.
Turns out setting a QMenu parent *not* in the constructor leads to very strange behavior. All parents are now set in the constructor.