I have a 30-40 minute daytime napper too, it drives me nuts when I think about it too much. I feel your pain as my DS often wakes up grouchy because he clearly needs to sleep more, but I figure that so long as I'm giving him the chance to nap (try and get him in his cot for a couple of naps a day) then he'll do it when ready. My day is often mapped out to give him a chance to kip every two hours or so (he's ready for first sleep about an hour after waking) in either cot/sling/pushchair.
Against my better judgement, I let my DS sleep on his tummy. I know the SIDS risks, but it means that he's able to get a decent night's sleep and some proper naps in his cot, which is his favourite place to sleep. And he's practically rolling over already at 14 weeks, so I am feeling more relaxed now. It's a very personal choice that you need to make though - I still wake up before DS in the night to check on him! I cannot advocate it (and I know I'll be flamed for saying that I let him sleep that way), but simply say it works for us.
You've already got children so are likely to be more pro than me. But I just try not to let DS get overtired and let him have frequent naps as/when he's tired. It is bloody frustrating and I can 100% sympathise...I swing from being chilled about it, to crying with exhaustion, wanting him to sleep so that I can try and rest too. But please don't beat yourself up about it - you're no doubt doing a fantastic job. And occasionally feeding him back to sleep really doesn't make for bad habits. I do this on the odd day when DS (and me!) is having a particularly crap day.
Oh, and we are shhh/pat converts. When in his cot, I'll sing a short lulluby, put him down, then leave him for ten mins to shout/get comfy. Then if he hasn't settled, DH or I will go in and give him a shhh/pat. Usually leave him a few times before picking him up and 9/10 he'll fall asleep.
Your DS is able to sleep for long periods if he wants to as his nightime sleeping proves this. It'll come with time (this is my mantra, anyway!). x