Well, you've identified all the problems you created. "Babying him too much", ie, holding a year old child when you shower or bathe and letting him rule your household, letting him co-sleep, feeding him 2/3 times a night, "not into crying-it-out".
The question that I have is, what are you willing to give up to train him?
You will not be able to do this without giving up something. You created this, and now you have to suffer the consequences, and so will he. Or, you continue to let him run your life and interfere with giving a newborn what he or she needs. On top of that, he will continue to be the insecure and miserable little boy that gets older, but continues to demand more and more of you.
I'm not trying to be mean, but you need to actually understand that you can't continue the status quo and change ANYTHING.
You have to give him the confidence in himself to be without you physically all the time. The only way to do that is to DO IT. Get up and go about your work. When he cries, don't stress about it. Talk to him SOME, not all the time. "Mommy's washing the dishes! You're fine, sweetie!" Hum to yourself, sing some songs. Dance a little, smile. If he sees that you think it's perfectly fine to be separated from him, he will start to feel like it's okay too.
NO MORE holding him while you shower. Your husband needs to watch this child while you shower, even if you have to get up earlier to do it. Never shower with him again. You are proving to this child that he cannot be trusted to be without you.
At night time, you need to switch to water in the bottle. No more milk. You will ruin his teeth giving him bottles of milk. He does not need milk in the middle of the night, ever. And no matter how much he cries, you don't get up. Put earplugs in your ears. Turn away from him and pretend to go back to sleep. Without that milk, he will stop waking up. After he stops waking for a bottle, you need to put him in a crib beside of you. Put your hand in between the slats and pat him until he wears himself out crying. Inside of two weeks, he'll be sleeping through the night in that crib beside you if you DO NOT GET UP and put him back into bed with you.
Your child deserves to learn how to self-soothe. He deserves the chance to understand that he is safe and secure without clutching onto you. And you need to give him that chance. He is depending on YOU to put him back asleep. This needs to stop.
Now, if you simply cannot find it in yourself to put him in a crib, then you'll be stuck co-sleeping for the next 3 years, at least. If you do, then for the sake of your c-section and the new baby, you need to put him on your husband's side of the bed, not beside you. He will not like it. Neither will your husband. No matter. He doesn't get to call the shots. Don't let him. He could kick you and tear stitches and cause you to have a fistula. Do this well before the baby comes so that he is used to sleeping beside his daddy. If you do it when you get back from the hospital, he will associate being separated from you with the baby coming, and will blame the baby for it.
If you don't have the courage to finally get this child out of your bed while you are still pregnant, then you had better start from the beginning with the new baby putting him or her in a crib. Start with a bassinet - it's better for a newborn and easier for you to deal with in terms of your c-section. Then transfer the infant to a crib. Not having your toddler in the bed beside you will also help you take care of your infant when you have to get up in the middle of the night. Have a warm receiving blanket or pad in the bed with you that you put under the baby to transfer him or her back into the crib after nursing or bottle feeding. That way the "cold crib" won't be an issue. And NEVER put a fully sleeping baby in the crib! Keep baby groggily awake so that she knows she is going down while in the crib. THAT'S how you begin sleep training. A baby that learns to fall asleep in the crib can fall asleep again after waking up in the crib. If you don't teach a baby this, they don't learn to self-soothe. Don't rock your baby to sleep either. It's okay to let a baby fuss to learn to go down.
Finally, your husband needs to get involved. You are allowing your child to diss his father. You are taking over so that your husband doesn't have the chance to be the daddy. Your husband has to learn to deal with his child on an ONGOING BASIS. You have to stop allowing your child to tell you what to do. And that's what you are allowing by giving into his demands. Children need limits. They need boundaries. You have to establish them. Your husband needs to spend time with this child without you, no matter how painful. He has to learn to help this little boy. LET HIM. Go out for a walk after dinner. Your husband could give him a bath and dress him for bed while you are out of the house. Read a book to him. He should do this every night until your son accepts him. No matter how painful this is for you and your husband and this child, DO IT. Right now, your husband isn't this little boy's father. He's the person who is in the house with his mother. That's not the way it should be. As he gets used to dad acting like a dad, he should spend time with your son while you are in the house, and you should not allow him to hang on you instead of being with his daddy.
This is boot camp for you and your husband to get ready for your hospitalization and a new baby coming home. Your child will hate the new baby if you don't change the dynamics in your home. You have 8 1/2 months to do this. Start now.