Well I found something for JQuery UI Tabs. The "show" option is not an event but it looks like it does what I'd expect the "activate" event to do:
$("#tabs").tabs({
show: function( e,ui )
{
alert("tab " + ui.panel.id + " activated");
}
});
Here's a jsfiddle demo (works with JQuery 1.9 + JQuery UI 1.9).
So I guess this turns the first question into "is this a good/bad solution"...