Вы explain запроса делали?
Использовать просто IN не очень то рекомендуют, а у вас вообще IN (SELECT ...)
Сделайте explain вашего запроса и смотрите сколько затронуто строк. В вашем случае это будет несколько млн сортировок.
Делайте как вам рекомендуют выше. Добавьте поле в tasks и делайте его индексом. Поле делайте tinyint или set('done','hide') что бы не занимало много места.
mysql_query("INSERT INTO hashes (ident, hash_tag) VALUES('$idea_count','$n')") or die(mysql_error());