This is MDL-3030, the most voted-for Moodle quiz bug. (See http://tracker.moodle.org/browse/MDL#selectedTab=com.atlassian.jira.plugin.system.project%3Apopularissues-panel for the list of all issues with most votes.)
I think I have finally devised a solution, which I have written up here: http://docs.moodle.org/dev/Better_handling_of_overdue_quiz_attempts. I am afraid there is not time to implement this for Moodle 2.2, but it will be done in pleny of time for Moodle 2.3. (The OU want me to get this done during November.)
So please help by scrutinising my plans, and spoting anything I might have overlooked.
The design document is rather technical, so here are a couple of scenarios for how it might work:
Example 1: a mid-term quiz. Students must complete the quiz and submit before midnight Friday 21st October. When time expires, if a student has not started, they cannot do anything. If a student has stared an attempt, but forgotten to go back and finish it, then early on Saturday morning, Moodle sends the student an email saying "You started an attempt at the mid-term quiz which was due on Friday 21st October, but you did not submit it. You are no longer allowed to change any of your answers, but if you wish to have it graded, you may still go to {this link} and submit it up until Wednesday 26th October."
Example 2: a three-hour exam. When time expires, if they are still working, the student is automatically redirected to the summary page. There, they can do a final review for up to 10 minutes after the exam ends. (This is like the way to stay in the exam hall and sort out the paper-work after them mian exam time expires. This means that Moodle does not have to mark all the quiz attempts at exactly the same second.)
Example 3: five-minute pop-quiz. When time expires, the quiz is automatically submitted, as at present.
I hope those three examples make the more detailed description easier to comprehend.