My response is unconventional and contradictory to what all physicians tell you, but try putting your son to sleep on his tummy. My son never slept well on his back, but as soon as I started sleeping him on his tummy, he slept great. He absolutely HATED being swaddled; couldn't stand being confined and restricted. At 2, he's the same way :)
Many parents balk at allowing their babies to sleep on their tummies, but as long as your son is strong to move his head side to side, then he should be fine. Trends always go in cycles, and when I was a baby, all the doctors said to sleep babies on their bellies so they didn't choke if they spit up. Now it's that they have to sleep on their backs. Go with your instincts!!!!!
Here is a segment from a letter from the Director of Neurobehavioral Infant and Child Studies at Harvard Medical School (Heidelise Als, PhD):
"We feel very strongly that infants' hands and arms should never be swaddled downward. This is a very unnatural position. The preterm infant in the womb is in flexion much of the time and uses hands and arms to reach across midline, bring the hand and fingers to the mouth, suck on them, grasp and clasp hand to hand, and to the umblilical cord, grasp and holds onto the head, the shoulders, etc etc. This all sets up neurosensory feedback loops that the immature nervous system counts on in order to mature the flexor-extensor balance and mutual inhibition and activation. Hands should always be free to reach the face and mouth and to mutually grasp one another."
If you would like, I can email you the rest of the letter. I was unaware of this correlation until very recently, so I'm guessing this is pretty new, but it makes sense :) Have a great day!