buttons ... hmmm ... one reason I went the type/widget approach is that the form builder already had a "submit" widget (or type? I need to look). I think this approach fits in as they really are form elements.
Anyway I'll try to spend a little time this weekend looking at my GP button type/widget hack to see just how ugly it is :)