For all of your examples, I think you can communicate the feedback in a specific, helpful, and gracious way. For example, for the candidate that you're worried would futz around with technology for technology's sake, why not say something like:
"Hi X,
Thanks for interviewing with us yesterday! Everybody on the team enjoyed meeting you.
Unfortunately, I don't have great news for you: after a lot of discussion, we decided we can't make an offer.
We thought you seemed really smart, and you did great on all of our algorithms and system design questions. What worried us is that, during the pair programming exercise, you spent a lot of time configuring your custom-built editor and trying to use a combination of the D and Brainfuck programming languages running within an Amiga emulator, when C compiled to x86 would have been a more practical choice. Since we're an early-stage startup with only six engineers and limited funding, everything we do has to directly relate to making our customers happy, and so we're especially sensitive about pragmatism at this stage. We know it's entirely possible we're making a mistake, but given our company's small size, we just have to be very cautious, even paranoid, with every single hire.
Thanks again for taking the time to talk with us. We really appreciate it. And sorry again that things didn't work out this time. Best of luck with your other interviews, and please let me know if there's anything I can ever do to help!"
(I'm making up details, but you get the point. I've sent lots of feedback of this type and rarely had a problem.)