Skyler, you are not starting a bad habit by rocking your baby to sleep at 4 weeks! Babies tend to only form real sleeping habits from 6 months, also I really wouldn't advise letting him cry it out at such a young age.
If I where you, I would rock (even if it means investing in a rocking chair to sit on) until he is fast asleep. Then put him down. I used to put a hot water bottle in the cot under a blanket about an hour before bed time so that the blankets would be nice and warm. Hubby would then take it out just as I put LO down. Then I would cover him again with the warm blanky that was over the bottle. This really helped us.
But you are doing everything right, swaddling is the best thing at this age as it should make them feel secure, so keep doing it.
So my advise would be:
Swaddle, rock, hot water bottle in cot, put down and cover with another blanky.... You can even leave the bottle in the cot behind him if it is covered in a safe cover and not to hot anymore. The extra weight with the body temp imitation might trick him into thinking he is lying next to you.
You can also wear something comfy while bathing and rocking him and then put that near him so that he can smell you.
Good luck!!! You are doing great, and I promise it does get better!!! 6 weeks, it gets a little better, and 12 weeks it gets a lot better!