Callback is executed when setData completed its job, so fire saveSnapshot before that.
Make sure that if no changes has been made in source mode snapshot containing insignificant DOM differences like bogus <br>s is not saved when switching to wysiwyg mode.