Oh man, lucky you. I've worked on things that take days to start figuring out what's going on... debugging subtle race conditions in massively distributed systems comes to mind.
Well, I've worked on systems that take days to figure out, but not problems that require half an hour to get into my head every time I touch them.
It's not getting the problem in your head, so much as where you are at a certain point in time while attempting to solve the problem. If you get knocked out of flow by interruptions after 20 minutes, it can take quite an amount of time to get back to where you were.
Try inheritance trees in a dynamically typed language, when there is 8 layers of abstraction between the thing that you know and the thing that might be causing the problem.