Да никакой софт не будет отвечать на кнопку стоп, если чет зависло.
Я не вижу смысла пихать потоки там, где они не нужны. Я не считаю, что имеет смысл тормозить процесс прошивки, если он уже начат.
При ожидании, старте операции, когда ещё имеет смысл сократить время - да.
Относительно проблемы - нужно знать когда софт именно виснет, каждый из модулей. Чем больше информации - тем быстрее поправим.