Долгое выполнение запросов в MySQL
Попробуйте составной ключ checked, taken, task_id. Именно в таком порядке, может помочь. А вообще какая таблица InnoDB?
Материализуйте результат запроса. Заведите отдельную таблицу, при поступлении задач вставляйте, при назначении удаляйте.