Что касается основы рабочих процессов, я бы оставил ее для продвинутых сценариев / проектов, где вы будете использовать многие из них, такие как настраиваемый рабочий процесс, который вы хотите варьировать для каждого пользователя / компании, сложные потребности в рабочих процессах, пауза / продолжение.
Я бы пошел по пути ITask за его гибкость (по сравнению с простыми методами), но в то же время простой. Я чувствую, что это также поможет вам с модульными / интеграционными тестами. Тем не менее, я рекомендую следить за повторным использованием задач, таких как, скажем, задача перемещения файла, поскольку вы не хотите заканчивать множеством задач, которые делают то же самое. Просто сделайте это на этапах рефакторинга, чтобы позволить фактическим потребностям / использованию определять, что вам нужно (в тестах - TDD:)).