For whoever attempts a PR, it seems to me both 1. and 3. are needed.
Refactoring of `document_save_file()` is needed so a new function, say `document_save_file_error()` without the dialog and with the gerror can be created. Better to create a different function rather than changing the existing function signature which would be a big API break inside Geany and many plugins.
Needs 1. because the plugin still needs to disable saving of that document or the same thing will happen again next timeout. Probably if an error occurs the plugin should show a dialog detailing the error with an option to stop saving the document. And then since it has to keep a list it is only a minor addition to allow users to add files to the list to cure #673.