Мне всё-таки кажется, что пых сюда притянут за уши, и не нужно пытаться решать эту задачу в лоб. А вместо этого настучать автору по голове, и рассказать о том, что существуют другие инструменты. Рассказывать же про сокеты и очереди человеку, у которого главная проблема - таймаут на выполнение похапе скрипта онлайн.
Не очень-то и получилось, вообще-то. iconv выкидывает русский - значит, входная кодировка была указана неверно. Что неудивительно, учитывая столь варварское обращение с mb_detect_encoding.
В общем, что к базам данных вопрос не имеет ни малейшего отношения, а на самом деле про определение кодировки. Ну, на эту тему много информации, даже на Хабре были статьи по-моему. После определения действовать по инструкции ниже. iconv выкинуть.
mb_detect_encoding используется довольно странным образом.
А обязательно файл? Через текстарию точно нельзя? В этом случае все было бы значительно проще.
Рекомендую или задавать вопрос толком, или не задавать вообще. "Это я скрыл, это забыл, а это не показываю потому что неважно, но вы мне дайте точный ответ, как ускорить" - так дела не делаются. В текущем виде вопрос вообще не имеет смысла, поскольку смысла не имеют таблицы tasks_done и tasks_hide.
Строго говоря, обращение к mysqli прямо в коде столь же ужасно, что и к mysql. Использовать надо обязательно только обращение методам абстрактного класса-надстройки. поскольку начинающему такой сделать явно не по зубам, то рекомендовать надо PDO.