tl;dr: I rambled on way too much, describing my own cases of "burn out". Unfortunately, I haven't even figured out a good solution for myself so I don't have any good advice for the OP. You probably don't want to waste your time reading this wall of text; it doesn't say anything useful or productive, although it did make me feel a little better. Sorry.I'm not really a developer/programmer; I'm sr. network engineer at an ISP and I manage all Linux servers; the only code I write is that which makes my own life easier. Prior to this, I was in a similar role at a .edu.
A few years ago, I was getting burnt out pretty bad and although there were a few other contributing circumstances, I decided pretty spur-of-the-moment to quit my job and move to either Seattle or the Bay Area. I desperately wanted a change of pace.
I turned in my resignation two days later, on a Friday, and gave 'em two weeks notice. At noon the next Wednesday, the head of H.R. (also a good friend of mine) told me I could go ahead home (they did this pretty much anytime someone decided to leave, although they always us for the remainder of the two weeks).
That was at the beginning of May 2011 -- just when it's really starting to warm up and turn into summer here. Instead of taking care of personal things and tying up the loose ends I needed to before I could move 2500 miles away, I spent pretty much every day on the bike (motorcycle) or the boat and every night at the clubs (I live in a college/party town). I never got around to taking care of my personal business so that I could move.
At the end of October, a guy who followed my blog e-mailed and asked if I was looking for a job -- a company he occasionally worked with in my area was looking for a new head network guy. I wasn't really looking but I agreed to talk with them and gave him the okay to pass along my contact info. Shortly afterwards, I got an e-mail from the owner saying that they really needed someone who had extensive knowledge of and lots of experience with Cisco and Juniper gear. Ironically, I was attending an event in San Jose then and so I got to reply with a cocky "Yeah, I'm actually at Cisco right now and I'll be at Juniper tomorrow" e-mail.
Anyway, I started working with them shortly afterwards. I didn't really want to have to work -- I had gotten used to all the free time I had every day -- but I was actually starting to get bored (and I was starting to forget things). While I was doing pretty much the same work that I had gotten burnt out on, it was a different environment with different requirements than what I was used to (old: EDU, new: ISP) and so it was quite interesting and had different challenges. They had grown the ISP from a very small company into a decent size organization. None of the technical staff had any formal education and had pretty much learned as they went along. Because of this, they had huge holes in their knowledge but weren't even aware of it. Things hadn't been designed properly and best practices were a foreign concept. They made managed to make it this far but they were starting to hit the point where their environment wasn't scaling any more and major changes were going to have to be made -- nearly the entire network needed redesigned. This was gonna be a huge project and is exactly the kind of stuff that I like to do. I love a good challenge and especially enjoy being able to finish up a major project successfully.
Several months ago, after nearly two years, I noticed that I was starting to burn out again. I wasn't really enjoying my job anymore and was beginning to dread working. As the OP said, "I'm just finding the physical and mental act of programming for a living draining" (not programming in my case, but very similar). Instead of working from home occasionally, I started working from home all the time -- I didn't even want to go to the office. I was still getting work done and making progress on my projects but, like you, that spark and enthusiasm was nearly gone.
At the beginning of October, right as it was really starting to get to me and I was beginning to seriously consider leaving, I was involved in a (head-on motorcycle vs. Jeep) crash, suffered some pretty major injuries (two broken wrists, broken leg, messed up ankle, ...) and was gonna be out of commission for some time. Fortunately, the systems that I'm responsible for are fairly resilient and so we haven't had any major issues while I've been out (the biggest problem happened just last night -- a hardware issue worked around by shutting down a link).
I've done a few minor things recently but haven't done any major work since my wreck. It's just been the last few days that I've started catching up on e-mails, looking back over my previous notes, and brainstorming. I've created a number of tickets for myself and have been trying to mentally prepare myself to get back into "work mode" -- as much as I enjoy not having to work every day, I'm starting to get bored again (I can only visit HN so many times a day before I've read everything of interest!). Besides, my bosses and co-workers have been very understanding and amazingly patient but I'm quite aware that my absence is making things hard on everyone else.
I realize I'm rambling (sorry), but I can certainly relate to the burn-out. Part of it is probably because I don't often take vacation time -- my recent time off due to my injuries is the only time off I've had in the two years I've been at this job -- and even when I do I almost always end up doing work of some kind. So, for me, the last several years have basically been: work my ass off, get burnt out, a few months of not working, get bored, work my ass off, get burnt out, ...
Wash, rinse, repeat.
Unfortunately, I don't have a good solution for you (obviously, I can't even find one for myself!) but hopefully you'll figure something out before you do get completely burnt out. I don't have any children, fortunately, or I wouldn't have been able to just decide "hey, I think I'll quit my job and move across the country!" one day. Luckily, I was in a good position financially, too, or I wouldn't have been able to do that; at that point, having to continue at my job would've been quite depressing.
I am slightly afraid that, once I start working again, I'll quickly descend into "burn out mode" again. I've been trying to remind myself how excited I was when I first started at this company. I had an unbelievably large project ahead of me (along with lots of smaller ones) and it was going to be a huge challenge, but I was excited because I was going to get to redesign and rebuild our entire environment (multiple datacenters, tens of sites, dozens of links, replacing Windows servers with Linux) from the ground up, with the flexibility to do things "my way". It's helping, somewhat, and I'm looking forward to diving back in head first. There's so much I want to do -- and actually have the freedom to do -- with our infrastructure: make things more reliable and stable, more scalable, and offer services that we haven't been able to before. I really do have my perfect job. Even so, I haven't been able to conquer the "burn out". For me, I think a lot of it simply hinges on that whole "work/life balance" thing and I need to remember to take some off and get away every once in a while.
Sorry for the rambling wall of text. Good luck to you, OP.