Paul,
Regarding your question on possible gotcha's in performing the actual save operation during the op=2 call of a save callback, I can share the following which may or may not apply to your situation.
The current save call back design is limited in that it only provides for callbacks that occur prior to the actual save being performed by the editor. That is there is no post save callback. This has created a problem for our customization of the editor in that we're thrown into plug-in wars during save callback processing. In our environment we have 3 editor plug-ins that need to perform special processing during a save operation:
Of course, as soon as one callback routine aborts further save processing, any other callbacks are left out in the cold. Therefore, we had to modify the save callback processing for these plug-ins to turn off their respective default callback implemenations and replace them with one callback routine which then on its op=2 callback call, called each of the pre save functions that need to be performed, did the save, called each of the post save functions that need to be performed, then tell the editor to abort further save processing.
So, the gotcha that I can caution you about is that of running into plug-in wars if your editor environment might include competing plug-ins as our does.
The best solution for this concern would seem to be for the editor to support both pre and post save callbacks. To my knowledge that's not in the works yet.