Cleanup takes time. No matter if it is refactoring, fixing bugs, updating supporting libraries, adding the proper documentation, or test coverage to your code. There is no way around this.
It will affect your deadlines today or sometime down the road. The difference is that today, it’s your choice to make.
Thinking that you get away with this is just naive. It just can’t happen. Not unless you give up on the project or decide to rewrite the whole project, which is an entirely different problem.
Balancing the feature and fixes needed with the necessary cleanup work is difficult. It’s hard. You are not alone in having to make these choices. Making those calls is hard, whether you are the developer, internal or external client, product owner, or even an end-user. The work is needed. Sooner or later, it will become inevitable, and the choice won’t be yours.
There aren’t many options other than just “doing it.” Just as it’s not wise to argue the existence of gravity, you can debate whether it exists. If you try to debate this, you will have the wrong time.
It’s been proven repeatedly that all the money in the world can’t get you off the hook. There are enough examples to go around.
What makes you think you can get away with it? Is it hubris or inexperience, or do you get an adrenaline rush from living on the edge? It doesn’t matter. All that matters is that you should figure out a way to do it sooner rather than later and make communication front and center since your team, clients, or users need to understand and give you the necessary support.