For my future self, or anyone else who finds it - I ended up doing this with a button instead of a label or panel.
const btnPresetBrowser = Content.getComponent("btnPresetBrowser");
const pnlPresetBrowser = Content.getComponent("pnlPresetBrowser");
// Show/hide panel containing preset browser floating tile
inline function btnPresetBrowserControl(component, value) {
pnlPresetBrowser.showControl(value);
}
btnPresetBrowser.setControlCallback(btnPresetBrowserControl);
// Update button text when new preset is loaded from preset browser
const UserPresetHandler = Engine.createUserPresetHandler();
UserPresetHandler.setPostCallback(function(presetFile)
{
btnPresetBrowser.set("text", Engine.getCurrentUserPresetName());
});