CIO works great IF: You never give in, otherwise it becomes a much bigger fight.
But most importantly, your son has to be REALLY full of food to sleep through the night. You may think he's full and eating enough, but this is the #1 most common reason kids don't sleep.
You need to add even more healthy NON SUGAR snacks to his day. Offer food all the time. If he's full he won't eat, but if he eats, he needs to. It takes a few days for his body to register the increased calories and sleep more soundly and longer.
The rest is a battle of wills at this point. He has managed to make you move a mattress into his room etc, and he is over a year old, so it will be a battle, but if you give in you will make it worse.
If you don't give in it should take 3 days /week AFTER he's fully stuffed more-for him to sleep through.
Also, rather than just letting him cry for hours to see if you will eventually come back, you should go in once or twice to firmly tell him, "No, it's time to sleep."
But ONLY If you mean it. He will think this is attention at first, so never cave after that warning. In the nights to follow, he'll know you don't come back after you say that. Otherwise, just never come in-you know your son's capability to understand you.
Good full diet, lots of exercise, lots of attention, good night routine, walk away, don't come back.
It's usually best to pick the sleeping method in the first few months of life. If you're going to be a co sleeper, start that habit, if you're going to be a separate sleeper, using CIO early is MUCH LESS traumatic than with a child who has learned to sleep with adults for comfort. My kids barely cried, they always went to sleep on their own in their cribs as soon as they didn't need nursing during the night-and even then, they went in their own crib by the bed. BUT, since you are pregnant and since you need to make the switch, just STICK TO IT, it's not mean. It's good to let him become a secure sound sleeper on his own.