Your Mom has not learned her "role" in being a "help" to you. It's a power struggle which your Mom is knowingly or unknowingly instigating.
You have talked to her about it in many ways as you mentioned, but your Mom won't budge or compromise with you.
Thus, you need to have someone else help you out.
The key here, is YOU are the Mom. As your son gets older... you need to ALSO "teach" him that YOU are the Mom and YOU are the one he will need to listen to, YOU are the Parent, not Grandma.
For example: In the beginning, when my Mom was a first time Grandma, she did the same thing. Fortunately, my Hubby & I talked with her MANY times, in various ways... and by now, she is a totally cool Grandma who respects our wishes with our children. BUT it took time. In the meantime, we also taught our daughter that WE are the Parents... and whenever Grandma tells her something, she must first come to us, and ask us "permission" first, since WE are her Mommy & Daddy. Age appropriately... we also taught our girl "responses" she could tell Grandma... for example: if Grandma says she can have candy... we taught her to say "No,I need to ask Mommy/Daddy first..." or "You need to ask Mommy & Daddy first...." THIS has helped a LOT as well.... it takes away the "power" or bad habits that Grandma can put on our daughter. My girl is now 5 years old... and she has no confusion what so ever of "who" to listen to. She "knows" we are her Parents and that we decide things. In turn, Grandma has also "learned" that WE are united as a family and that me & Hubby are the PRIMARY caregivers of our children.
Children also need the help in "understanding" this, especially if there are other family members/Grandparents who sabotage our role as "Parents."
Yes, your Mom is sabotaging all the things you are teaching your son, and teaching him that YOUR rules don't count. This confuses a young child. They don't know "who" to listen to, or what rules to follow. It is NOT the "duty" of a Grandma to let a child "get away with things." Tell your Mom that she is actually doing a Dis-Service" to your son, and teaching him bad habits.
Sure all Grandparents like to spoil their grandkids and enjoy this... BUT within reason. It seems that your Mom does not want to respect your role as "Mom." You need to remind her that YOU are the Parent, not her.
At 2 years old, it's a hard enough stage..."the terrible 2's" as they call it. But at 3-4 years old, this stage is also still ongoing... so your consistency and patience with your son and dealing with your Mom will be a test of wills. Hopefully, she will learn to compromise.
But, I would just get another person to help you... don't "ask" your Mom for permission, don't discuss it with her... just do what you need to do....this is your life with your Son... you need to do what is best for you and him. You don't want to hurt your Moms feelings... but, well... sometimes we all try so hard to not hurt someone's feelings, but the MAIN focus, the child, gets pushed aside. You want your son to grow up respecting your Parenting... or he may learn from Grandma that he does not have to. The 2's stage and age is a crucial time in learning social skills and "rules" and boundaries.
Your Mom can be "Grandma"...but as for care-taking and child-care... that can be someone else. Then perhaps in time, your Mom will learn to understand, and learn to realize that HER daughter is now a Parent, and she will just have to adjust to that. My Mom, over time, has now become much more enjoyable in respect to respecting us as Parents, and how her "role" is now as a TEAM with us, not against us or our children. And our children, my eldest child especially, has no confusion or conflicting "rules" being tossed at her from Grandma.
Sorry for rambling, hope it all can work out in time for you and your son. All the best, don't give up, and take care,
~Susan