Сейчас же я захотел переделать код, начав с соблюдения принципа «один класс - одна задача»
Почему? Откуда взялся этот принцип?
Следуйте следующим принципам:
1) данные, которые находятся внутри класса обрабатывались методами этого класса
2) Избегайте суперклассов (слишком больших классов, которые не помещаются в голову одного программиста, и вызывают много конфликтов при поддержке приложения)
3) Соблюдайте баланс между первыми двумя пунктами.
Учитывая, что вы единственный разработчик, то нет смысла делить класс на несколько, даже если он великоват.
Если у вас есть визуализация этапов, можно было бы разве что в отдельный класс вывести эту визуализацию. А так - скорее всего у вас все хорошо. Может быть названия методов пересмотреть и все.