On Monday, I finally cracked that: instead of trying to get every detail Just So and building from the bottom up (which was incredibly unsatisfying, since it meant that nothing was actually functioning), I finally grokked that I was screwing up, and went back to my usual development style: top-down, getting skeletons functioning as quickly as possible and then fleshing them out. The result is that I've made more progress on Notifications (the current project at hand) in the past three days than I have in the past month.
And getting things working has shone a bright spotlight on the places where my designs, while fine ideals, are too elaborate for the first draft. Get it sufficiently functional first, enter UX bugs as necessary where the workflows need improvement, but keep moving. (Today's realization was that, yes, the display of Notifications *should* be a popup pane the way that FB and G+ do it, to avoid the workflow interruption of a separate Notifications Page. But getting the bloody things functioning comes first. When I have time to go do some serious jQuery hacking, I can make the workflow prettier, but I don't need to spend those two days on gold-plating right now.)
The moral of the story (which isn't news, but I need occasional reminding): don't navel-gaze. Design is good, but only to the point where I broadly know how it's supposed to work. Once that is done, write out the Tasks and start slamming them in. The resulting code winds up every bit as good, and it's one heck of a lot faster...