http://www.fowllanguagecomics.com/homework-bonus-panel/
So yes, being a senior dev often means spending way too much time doing all of the less-fun things on a project. Planning and scheduling, maintaining all of the infrastructure others depend on, interfacing with other groups, etc. Spending half of every day reviewing (and having to argue about) others' code is even more annoying than having your own code reviewed once in a while. Being the "debugger of last resort" is satisfying once you're done, but can be intensely frustrating while you're in it.
This list of gripes suggests the solution: one must actively resist all of these extra roles. Relentlessly. Yes, you'll be dragged into doing all that stuff anyway, but if what you enjoy is designing and coding then you have to protect that time. With all that said, here are some of the keys for me:
* Find fun projects and good people to work with. Always important, but ever more so as you become more senior.
* Work from home (at least part of the time - for me it's practically always)
* Explicitly block out time for the different activities. Set aside a morning for code reviews, an afternoon for your own coding, etc. For me, working in a time zone three hours ahead of most of my peers is a huge plus here.
* Require meetings to be scheduled well in advance. Decline with prejudice when people get too casual about this. Make it clear every once in a while that you're doing this as a matter of policy/principle. To soften that, show interest in the content e.g. by providing offline feedback.
* In general, say "no" a lot. Be polite, compromise or defer when you need to, but don't be a pushover and don't be passive-aggressive.
* Accept that you might get dinged for all these things. You might get fewer promotions or smaller raises, maybe even a bad review. OTOH, the increased focus on what you're best at and most passionate about might improve your performance compared to being pulled in seven different directions.