How can I determine with has finished saving

It there a reason why you are creating explicit temp files? You could create temp files in memory (e.g. new PDFDoc() … ). Unless you explicitly disabled disk caching PDFNet will store stuff in temp files anyways (to decreases memory load).
This way you don’t need to worry about temp file business at all. In case you still want/need to use your own temp files. You need to make sure to close PDFDoc-s (e.g. pdfdoc.Close() or pdfdoc.Dispose()) after pdfdoc.Save() but just before you try to delete the file.