I can tell for myself only.
My mind works differently. I need to understand the problem before starting to produce if-clauses. Of course, the problem can be understood very quickly, so time to jump into coding can be short.
When the problem is roughly understood, my mind already has a high-level plan for the solution so some distractions will not really distract most of the time. High-level plan is that: I do not think whether I will use if of case or some interface dispatching or rules engine. That small detail is trivial when decomposition need to be done to some specific function.
I do not practice TDD, but sometimes having a test suite (mostly test data) beforehand and writing tests in parallel helps to get early feedback. The beauty and adequate compactness of the solution is for me much better guarantee than a messy code with test suite.
The way to lessen cognitive load is then to decompose solution into functions. Hardest parts first, so it all usually starts from the middle, but sometimes some low-level function is what does heavy-lifting, so it is to be implemented first.
Unifying logic also makes magic. Rules engines, even homemade, can be much more elegant solution than adding IFs to the ever-growing code. What lessens cognitive load in logic-based systems is that order of execution might not matter and can be done later as an optimization if needed. Logic becomes liquid and can be manipulated at a meta-level.