I just tried this code from the demo page adding overlay caused the event to be fired twice
Didn't check why yet, any idea ?
new ui.Dialog({ title: 'Title', message: "I'm a simple dialog" })
.closable().overlay().show().on('hide', function(){console.log("hide")})