The button-widget is one of the very first widgets, that where created, when TW was developed.
During the dev process the widget got more and more parameters for more and more functions, that where needed by TiddlyWiki itself and also by users. So it got a bit messy. …
As always, it depends on your actual usecase. If you “only” want to create a new tiddler as in your OP, it’s OK to use <$button message="tm-new-tiddler">Click!</$button>
… It’s readable, it works and everyone should understand what’s going on.
But as soon as you want to do more complex actions and several of them, the best way is as follows:
\define myActions()
<$action-xxx ... />
<$action-yyy ... />
<$action-zzz ... />
\end
<$button actions=<<myActions>> >Click!</$button>
If action-widgets are used inside the button body. It’s not always guaranteed, that all variables used by the action-widgets are updated in the right way. Variables inside the button widget are evaluated, when the button widget is rendered.
I think, the format above is “best practice”, since all variables are evaluated when the button is clicked.
Just my thoughts.