Давай тогда так сделаем. Эвристики мы применять не можем. Если кто-то использует latin1 из второй половины таблицы, печаль.
Плохо, что мы сейчас не можем понять из-за чего конкретно падает и перестанет ли падать. Может стоит логировать кусок, на котором упали (возле UnicodeDecodeError.start)?