In the same way that a button widget can have child widgets whose behaviour is affected by the button widget, you could make a widget that calls other widgets, or affects widgets contained inside it.
You could make an action widget that takes a string of action widgets as a parameter and a delay and then runs the widgets after the delay.
The layout would be like this:
<$button>
WHEE!!!
<$magic-delay-widget
actions="""Some list of action widgets here""
delay="1 million years"
/>
</$button>
the fastest way to do this would be to modify the button widget to take a delay input and then put the setTimeout around everything inside the click handler.
There are probably nicer ways to do it, but that would work and should be relatively straight forward.
then it would be a normal button with an extra parameter like this, the actions passed as the actions attribute or listed inside the button tags shouldn't make any difference doing it that way:
<$magicbutton
delay='10 microseconds'
actions='lots of action widgets in this list!'
>
MAGIC!
</$magicbutton>!