I tend to timestamp my hacks as well so I know how long dirty code has been in place which furthers nagging me for a clean solution.

I do use a system similar to yours in TextMate using the TODO bundle that handles all of it elegantly. A keystroke will recall my categorized tagged list (e.g. PENDING, FUTURE, HACK) in a floating window where clicking on any entry in that window will take you to the line of code in your editor this entry occurs. Very fast and with intelligent completions easy to get the tag, username from system and timestamp automated in just a couple minutes of your time.

This solves the "failed system" problem on TextMate.

Xcode (being not the world's most glamorous editor) still sounds like it needs a better solution then #pragma marks as a grouping for this type of arrangement -- I would think you'd want to reserve pragmas for method grouping.

The main thing I've realized in having a working setup used as you describe is that I don't have to trust ANOTHER system to track changes, and because it's inline with my code, it is always eyeing me and making me aware that it needs to be fixed. I have a hard enough time trusting iGTD for my tasks -- and Hazel I heavily abuse for file-based GTD well because I don't have to think about it.

The main thing is you need it to be EASY and FAST or you won't stick with it as noone needs a reason to add more micromanagement to their life.