After going grocery shopping and then mowing the lawn, Duncan and I sat down to build a project we found online: an NXT robotic claw arm. This time, Duncan built almost the entire thing unsupervised. His attention to detail is improving dramatically, I'm pretty sure I can count on one hand the number of times I had to stop him and say "are you sure that's right?"
Then we sat down to program it, and again I walked him through the process trying to get him to understand what we were doing each step of the way (I'm using the NXT-G software with him, I prefer dabbling in NXC when I'm doing it on my own), but I could see his attention span rapidly diminishing, so we nicked the example program from the build page linked above and programmed it straight onto the robot.
The squeals, oh my god the squeals. He was clearly having way more fun playing with it than I was. Between that and the fact he's acquired a penchant for BattleBots on YouTube, this kid might be into robots for life.