I just checked in TextEdit and what it does in the case you're after—not confirmation of the save, but failure of the save—is the following:
- The Save panel rolls up.
- The app tries and fails to save. (Your block.)
- The app presents its error sheet on the document window, with the Save panel long gone.
So, if you want Apple-like behavior, show your alert sheet on the document window.
Incidentally, you may be interested in presentError:modalForWindow:delegate:didPresentSelector:contextInfo:
.