Вы итерируетесь по списку и одновременно удаляете из него значения. Вероятно, это и приводит к непредвиденным результатам. Наилучшим выходом здесь будет изменить алгоритм на тот, который не будет модифицировать исходный список. В текущей реализации слишком много лишних операций - вложенные циклы, удаление. Задачу можно решить простым обходом списка с подсчетом встреченных подряд одинаковых символов.
Стоит понимать что при переходе на 4460 или даже 4770 резко увеличится тепловая мощность процессора
Скорей всего нужен будет ещё и новый кулер.
Так что смысла мало, разве что проц достанется бесплатно или по дешевке.
Так себе прирост производительности будет при замене на i5, а вот при замене на i7-4770K - значительный:
Ещё, как вариант, можно попробовать поставить аналогичный i7 Xeon с алиэкспресса, но это при условии, что ваша МП поддерживает Xeon.