Hi,
I think you are doing all the right things.
About him waking up grumpy from nap, it just happens with some kids. DS has ALWAYS woke up VERY grumpy from his naps. I have to cope with 15mins-1/2 hr of grumpiness, and then he is a happy boy.
When he wakes up from his nap (grumpy), I usually bring him to the tv room, and he'll get distracted with any tv show. I let him watch tv for no more than 15 mins. I know I shouldn't encourage tv, but it's so hard to listen to him crying for no apparent reason.