I'm sure I will seem odd but growing up we were quite poor and presents were not something any of us received (7 kids). but we never thought about it we always have good home cooked food on the table, and we sat together spent lots of time together. Surely that is more important? I think we are too materialistic. Why does it matter?
whilst it's nice to receive a gift, its better to give them, and there shouldn't be a reason to give a gift, I think you should relate that to your child rather than teach him to expect gifts come every special event. I think gifts can be given any time of the year. Putting a date on things can make it hard on others. I'm sure your mil loves your child and expresses that by spending time with him. It sounds like she hates shopping, finds it stressful or doesn't know what to buy. buying presents can be tricky especially for small children like yours. I always give money, unless the child or adult has mentioned something or I know they have a particular interest or passion for something.
I don't do birthdays but why not have the mil come over bake a cake together, have a nice meal with decorations. A 2 year old wont even care, I think its the adults who care more and instil it into their kids.
Same with xmas people struggle financially emotionally the stress of it all, whats wrong with just having a nice home made meal together and going for the church service?
I personally don't care for the gifts, if I receive any its a bonus. if I have spare cash I will buy for nearest and dearest first then others. if money is tight I wont buy anything but have a good meal together, that is costly in itself. My cousins and friends are the same so no one bats an eyelid.