Richard,
I think that no-one has come back to you quickly on this because it is difficult to see how this can be done successfully. I'm only putting together an answer from the fragments I know about, so this is not definitive...
Firstly you idea sounds great but flies in the face of way a standard assessment works; namely, a fixed start and end date - the same for everyone having the student role in that course. So it would require some rather special tweaks to make it work!
Secondly, AFAIK if a student is off-rolled from a course their assignment can no longer be seen or marked [does anyone want to correct me there?]
So you need a workaround...
I can think of two possible solutions, neither of which is perfect as each has drawbacks.
1. You could have one assignment that is always open (so you disable the due date), though it is set so that the user gets one attempt only (I suggest that otherwise you end up with no idea of closure for the student). You write a little php code that is triggered as the user enrols for the first time... This script gives the user access to the assignment (or Quiz, or Questionnaire) course module, which access begins in one week's time (that's all available stuff, and is made possible by clicking into the module, into Assign Roles, Locally assigned roles, and noting down the contextid which you would need in order to generate a new entry into the table mdl_role_assignments where you want to set timestart to the UNIX equivalent of one week hence. Care needs to be taken with this (as obviously you are aware) because corrupting the table by writing rubbish into the database is not going to make moodle very stable! But it isn't rocket science.
Now you could also put in a timeend for one week after that. But here's the rub. If the student disappears from the module (or course) after one week there is no opportunity to mark and record grades. Of course if the test is multiple choice and the correct answers therefore predetermined, then this won't matter so long as the grade is stashed away somewhere else automatically upon completion. Does the gradebook let us do this? I plead ignorance.
2. Rather messier (though the student sees exactly the same thing!) You create a course with 52 consecutive assignments (or quizzes or questionnaires) each with its own start/end date, and on enrolment to the course you give the user the student role in the next available assignment that is at least 7 days away. Now you need not fret about the start & end of the student enrolment, you use the start & end of that assignment instead.
One really obvious snag is that as soon as the user has the student role in the course he sees all the assignments. But not if you have them all hidden except the current week. Or if you do another sneaky thing and create (you wont like this) 52 clone courses each with its own assignment start / end dates, and give the user the rights to the appropriate one in your script (as above).
As you can see I'm suggesting that there must be some workaround (but the ephasis is on WORK, where the course creator is concerned).
Perhaps someone has a MUCH better whizz than any of this...
John