So here is a slightly edited version that seems to work fine here, however I would strongly recommend to not run the updating logic in the widget itself but from where you do the actual settings:
{
"BTTWidgetName" : "esc (listens to settings)",
"BTTTriggerType" : 639,
"BTTTriggerTypeDescription" : "Apple Script Widget",
"BTTTriggerClass" : "BTTTriggerTypeTouchBar",
"BTTPredefinedActionType" : 5,
"BTTPredefinedActionName" : "Mission Control",
"BTTEnabled2" : 1,
"BTTUUID" : "033E04C4-A3EC-4394-AF1E-D9AE145118B2",
"BTTEnabled" : 1,
"BTTOrder" : 0,
"BTTDisplayOrder" : -1,
"BTTTriggerConfig" : {
"BTTScriptType" : 0,
"BTTTouchBarApplyCornerRadiusTo" : 2,
"BTTTouchBarButtonColor" : "59.000000, 59.000000, 59.000000, 255.000000",
"BTTTouchBarButtonTextAlignment" : 1,
"BTTTouchBarItemPlacement" : 1,
"BTTTouchBarItemIconWidth" : 10,
"BTTTouchBarButtonCornerRadius" : 0,
"BTTTouchBarScriptUpdateInterval" : 5,
"BTTTouchBarAlternateBackgroundColor" : "0.000000, 0.000000, 0.000000, 0.000000",
"BTTTouchBarAppleScriptString" : "try\r\ttell application \"BetterTouchTool\"\r\t\ttry\r\t\t\tset RetrievedVar to get_string_variable \"ESC_Format\"\r\t\tend try\r\tend tell\r\t\r\tif RetrievedVar is \"Edge\" then\r\t\t--return \"esc \"\r\t\ttell application \"BetterTouchTool\"\r\t\t\t\r\t\t\tupdate_trigger \"033E04C4-A3EC-4394-AF1E-D9AE145118B2\" json \"{\\\"BTTTriggerConfig\\\" : {\\\"BTTTouchBarButtonTextAlignment\\\" : 1,\\\"BTTTouchBarAlternateBackgroundColor\\\" : \\\"0.000000, 0.000000, 0.000000, 0.000000\\\",\\\"BTTTouchBarButtonCornerRadius\\\" : 6,\\\"BTTTouchBarApplyCornerRadiusTo\\\" : 2,\\\"BTTTouchBarButtonName\\\" : \\\"esc \\\",\\\"BTTTouchBarItemPlacement\\\" : 1,\\\"BTTTouchBarButtonColor\\\" : \\\"0.000000, 0.000000, 0.000000, 255.000000\\\",\\\"BTTTouchBarFreeSpaceAfterButton\\\" : 16,\\\"BTTTouchBarItemIconWidth\\\" : 30,\\\"BTTTouchBarItemPadding\\\" : -26,\\\"BTTTouchBarItemIconHeight\\\" : 30}}\"\r\t\tend tell\r\t\treturn \"xx1\"\r\t\t\r\telse\r\t\ttell application \"BetterTouchTool\"\r\t\t\t\r\t\t\tupdate_trigger \"033E04C4-A3EC-4394-AF1E-D9AE145118B2\" json \"{\\\"BTTTriggerConfig\\\" : {\\\"BTTTouchBarAlternateBackgroundColor\\\" : \\\"0.000000, 0.000000, 0.000000, 0.000000\\\",\\\"BTTTouchBarItemIconHeight\\\" : 10,\\\"BTTTouchBarButtonCornerRadius\\\" : 0,\\\"BTTTouchBarItemPlacement\\\" : 1,\\\"BTTTouchBarButtonName\\\" : \\\"esc\\\",\\\"BTTTouchBarButtonColor\\\" : \\\"59.000000, 59.000000, 59.000000, 255.000000\\\",\\\"BTTTouchBarItemIconWidth\\\" : 10,\\\"BTTTouchBarFreeSpaceAfterButton\\\" : 20,\\\"BTTTouchBarItemPadding\\\" : 20,\\\"BTTHUDText\\\" : \\\"ESC\\\"}}\"\r\t\tend tell\r\t\treturn \"xx2\"\r\tend if\r\t\ron error\r\treturn \"esc\"\rend try",
"BTTTouchBarAppleScriptStringRunOnInit" : false,
"BTTTouchBarButtonName" : "esc (listens to settings)",
"BTTTouchBarAppleScriptUsePath" : 0,
"BTTTouchBarFreeSpaceAfterButton" : 20,
"BTTTouchBarItemIconHeight" : 10,
"BTTTouchBarItemPadding" : 20,
"BTTHUDText" : "ESC"
}
}
If you want to keep it in this widget, make sure to disable "Always run when widget becomes visible". That's because "update_trigger" will basically replace the old widget, insert the new one and display it. If that option is checked it would lead to an infinite loop.