Over in the categories of Video Production and Design/Multimedia, job postings often say that the work is required urgently or in a very short time, and yet 3 days later, no one's even been interviewed. That's true of 6 of my 12 currently "active" applications. And these applications continue to take up slots in the quota. So the applicant has to make a judgement call on whether the project is delayed but alive, or dead, since the last viewed value is inaccurate based on my experience.
So my suggestion is that oDesk requires the client to choose a 'Keep-Alive' time ranging from, say, 2 to 5 days. Any activity by the client related to hiring like looking at the candidate list or interviewing resets the clock. But if the Keep-Alive period elapses without any client activity then they get an email asking them to either put the job on 'Hold' or to close it. A non-response closes the job.
This system doesn't put any onerous requirement on the client. If the job is really active, they will visit or interact and the job will remain alive. If they have fulfilled their requirement elsewhere, or they have forgotten/neglected the oDesk listing, the job will automatically close. If the project is delayed, they can put it on 'Hold' when they get the email from oDesk.