is not very relevant here, and the logs are a very low-fidelity way to see what is going on.
If you want to understand what is going on, watch the output of this DB query: https://docs.moodle.org/dev/Overview_of_the_Moodle_question_engine#Detailed_data_about_an_attempt
for the attempt being made, as you work through your steps. (Or, user the report Quiz settings -> Results -> Responses to see that data as it comes in.)
Your steps are not very clear around number 3. and 4. Between those two steps, do you wait long enough for the auto-save to run? (You can tell for sure using either your web-browser developer tools, or the web server logs. In either case, you are looking to see if there has been a request to /mod/quiz/autosave.ajax
And, at step 4, when you try to close the browser, so you get a pop-up warnign telling you that you are about to lost unsaved data? (If you ignore a warning like that, what do you expect to happen!)
I say that cron is irrelevant, becauase the issue is: have the student's responses been sent from their web browser to the Moodle server and saved? That either happens at step 3.5 when autosave runs, or the responses are lost. Cron running can only take whatever responses are already stored in the Moodle database
, and process them.
For this sort of testing, a good trick to know is that, if you use two different web browers, you can be logged in as two different users at the same time, one in each brower. This makes it easier to see something like this from both the teacher and student point of view. (It also works if you use a normal window and in incognito window.)
But, what Rick says is what I would expect to see. This should work.