The main conclusion is definitely right. You need to take the constraints into considerations.
However, imo the optimal strategy to pay off debt is to reduce the total amount of payments whenever you have money to pay after the necessities of life are taken care of.
Well, my company has only has 4 people full time, so maybe my perspective isn't representative. :) But I've had people who were writing code on a temporary basis get frustrated when things didn't stick to the spec 101% or when there wasn't time for them to follow all the software engineering practices they read about in a book and felt like trying...I understand all that stuff (I've been on both sides of the equation), but what bothers me is when people are inflexible on principle, to the detriment of the business.
It would be nice if we can have integrity and authenticity without confidentiality.