I still can't fix my problem. Here's what I found today, after spending some more time on it:
1) Using the 5V/2A iPad power supply doesn't fix the issue - still no keyboard input
1a) Still doesn't work when using the iPad charger and the cheap powered hub
2) the mouse got power in those two tests though; in so far as it lights up. I can't log in to test it in X.
3) With just the iPad charger, I measured 4.9V across TP1 and TP2
3a) With the iPad charger and the powered hub plugging in, I measured 5.0V across TP1 and TP2
Today I was testing using the 16GB SD card, and I tried both Arch and Debian latest images. With Debian on the card, I also downloaded the firmware repo from github and copied the files in boot over to the SD card. That didn't make any difference to the keyboard problem.
I also only had the Apple keyboard today -- I left my Microsoft keyboard at the office. The Apple keyboard is also a two port hub, so I don't know if it needs more than 100mA. That said, it still doesn't work while connected to the powered hub, so I doubt that's it.
I would like to try connecting over ssh to the device. Unfortunately, when it's next to the internet router I have to run it headless, so I can't see what it says on screen. Anyway, when I tried doing that and plugging the ethernet cable, the link light didn't come on so I can only assume that eth0 isn't being brought up during boot in my image. When arch boots, it shows an error about device eth0 not being found.
It could still be a power issue -- I seem to remember the iPad charger only delivers the full 2A if the device does something special (shorts a pin to ground or something, I can't remember exactly what). It's probably that when plugged in to the Pi it's behaving as a 1A supply. I have a Garmin charger at home (5V/1A) so I tried that too, for kicks. Same problem.
My last hope is that where I work a few of the other people also have Raspberry Pi's now. I'm going to go and ask if any of them got theirs fully up and running, and if so I'll lend them my board and ask them to test it using their SD card, power supply, leads and keyboards. If it works from them, I'll use a process of elimination to work out which part of my setup is flakey. If it doesn't work, I'll send it back to RS.