При попытке выполнить задание - записывать в базу дату и время. А потом просто проверяешь, сегодняшним числом есть запись (если есть, то отправляешь его гулять на сутки), иначе даёшь ему выполнить твоё задание.
Когда он приходит на страницу, и задание уже выполнилось (проверяешь, существует ли запись, и если прошло 8 часов), то выдаёшь ему вознаграждение.
Отказ по аналогии - если он если есть запись, где он выполняет работу, и не прошло 8 часов, даёшь ему возможность отказаться
Дерзай;)