Как мне кажется, алгортим действий должен быть таким:
1. Смотрим включена ли функция. Если выключена, то действуем как обычно.
2. Смотрим на количество файлов в каталоге. Если их 128, то выходим.
3. Смотрим, есть ли удалённые файлы. Если нет, то действуем как обычно.
4. Ищем удалённые файлы и сравниваем их длину с записываемым файлом. Если есть удалённый файл равной длины, то новый файл пишем на его место, иначе пишем в файл с минимальной подходящей длиной.
5. Из оставшихся от удалённого файла секоторов создаём "новый" удалённый файл и корректируем каталог, записывая в него новый файл и новый удалённый файлы.