A more than minimal patch has been merged. Further work will be on new issues. Remaining problems not previously discussed:
1. Tab focus traversal is wrong. This is generic to Query subclasses that add widgets. See #37325.
2. When the customize box is cancelled, focus goes to the Shell, even when I add 'event.widget.focus_set/force()'. When the parent of the box was the editor, 'self.shell.text.focus_set' did not work to shift it to the Shell text.
Does anyone else have any idea how to put the focus back on the editor after cancel?