What options are there for hardware encoding/decoding?
I'm sure there are dedicated MP4 encoders out there, maybe someone else has better info. 

But I've had good results using AVC Ultimate, which takes advantage of CUDA on an NVIDIA card to speed up MP4 processing, to about double the rate I get without it. There's a free version, but I can't remember if the CUDA option is available in that -- I've used the paid version for quite a while.