Step 2 of your list above is vague. What exactly do you mean by 'Submit'?
Also, you need to realise that there are two separate things that are both important:
A) The responses have to be sent from the student's web browser to the Moodle server and stored.
B) The responses have to be processsed by Moodle when the quiz attempt is finally submitted.
The setting 'Open attempts are submitted automatically' only affects B).
Part A) is controlled by the setting Admin -> Plugins -> Activity modules -> Quiz -> General settings -> Auto-save delay (so check what that is on your server) - and, in the testing above, you need a delay of at least that long between steps 2 and 3 for it to have a chance of working.
If I wanted to test this, I would probably build a test quiz with an Essay question with attachments, and a multiple choice question, on the same page. We know auto-save works reliably for multi-choice, so that would verify that your testing is doing the right steps to have a chance of working.
It is possible that there is a bug with auto-save of files. I am not sure if anyone has tested it properly. If there is a bug here, we should fix it, so let us know how you get on.
You are right that this seems a bit odd in the context of a quiz. However, Moodle file-handling works the same everywhere, and this two-phase behaviour makes sense for Most forms in Moodle. There, you can open a form, make all sorts of changes to what is on-screen, and then later change your mind and click the Cancel button.
As I did further test, I realised that the file upload doesn't occur if there is only the file upload
I noticed that if you do a quiz with only a fileupload and only upload a file as an answer, the autosave function will never occur. As if a file upload doesn't trigger the autosave.
If you do the same and add a second question on the same page and answer it, then the autosave occur and the file will be autosaved as a response_attachment.
Shouldn't the upload of a file be counted as an answer and trigger the start of the autosave delay ?