This is fine, as far as it goes. However, when I do this, I feel like I'm being yanked around from one area of the code to another. What I really want is the opportunity to take a few steps back and spend some effort getting things back in shape. If, as you say, both types are needed, I think it would help if an organization valued both types and allowed them to do the type of work they find fulfilling.
If I get a new feature working, but I do so at the cost of adding more technical debt to the project, I don't feel fulfilled at all; I feel I've done a net disservice to the world, and especially to whoever comes onto the project after me.
Being the type of developer interested in keeping things clean and meticulous, while being pressured to always sacrifice quality for speed, seems like a recipe for stress and burnout.
Well, just as it's a fine line between "git-r-done" and "cowboy coder," it's a fine line between "meticulous" and "architecture astronaut." (See early Java vs. later Java, for example.) I think both camps win when they're tempered by the other.
I follow the boy scout rule: the code isn't done until it's at least a tiny bit cleaner than we left it. I'll generally spend about one hour out of every four on cleanup (and not budget for it separately). I also focus my cleanup efforts on what I'm directly working on, and what's causing me the most grief today. This allows me to keep my code clean and make the parts of the system that I use the most gradually improve.
If I get a new feature working, but I do so at the cost of adding more technical debt to the project, I don't feel fulfilled at all; I feel I've done a net disservice to the world, and especially to whoever comes onto the project after me.
Being the type of developer interested in keeping things clean and meticulous, while being pressured to always sacrifice quality for speed, seems like a recipe for stress and burnout.