That is the ultimate question, Vijay. In my experience, pushing for a massive, dedicated "refactoring cycle" rarely works because business realities almost always hijack it, and big bang rewrites introduce their own massive risks.
My go-to strategy is incremental, opportunistic refactoring (the Boy Scout Rule: leave the campground cleaner than you found it). If you're working on a feature in a messy module, dedicate 20% of that ticket's time to cleaning up just the code surrounding your changes. It keeps the business moving while slowly chipping away at the paralysis exactly where active development is happening.