Кажется понял. Проблема в том что после истечения времени указанного в параметре SaveInterval новый файл не создается (запись не идет) и следовательно выдается "Индекс Ридера за пределами диапазона". Т.е если указать в SaveInterval 300, то только 5 минут скрипт будет нормально писать/читать.
Завтра попробую поставить большой интервал.