Ok, as a work around I'm polling
GetWindowHandle
every 50ms for a dialog with the title "Save As" and interacting with it when it appears. This works, but I do get the dialog visibly flashing up and then disappearing, which is not ideal.
Hopefully a better solution will appear...