I think you need to decide what you are going to do and then 100% follow through with it.
I have a 17 month old and went through similar when she was a bit younger- minus the vomiting and smacking etc but she would scream and scream and scream til she choked!
What I did was decided that I wanted to be able to lay her in her cot, give her a kiss and leave, that was the end goal. First thing I did was lay her down in a very dark room and hen stand right beside the cot, every time she stood up or attempted to stand up I would immediately lay her back down and “shhh” her. I think the first night I did that something like 52 times and she cried and shouted and got angry with me but eventually she found me so boring and realised I wasn’t going to give in and went to sleep with me still stood beside the cot.
Next night do it again, it should take less time but be consistent, do exactly the same as u did the night before, immediately lay her back down, shh etc.
When that’s sorted start sitting away from her in the room but keep shhh’ing so she knows you’re there. And then just gradually decrease it until you’re out of the room.
Just make sure it’s really really dark and eventually you’ll be able to put her in the cot and walk out without her seeing and she will think you are still there.
With the being sick etc put a waterproof cover on the mattress, have a load of sheets and fresh pjs at the ready and if she is sick then I would keep the room dark, do no talking or interacting, very quickly change the bed and her pjs and then straight back in the cot. She will soon learn that you’re not giving in. You need to be very very boring and firm about what you want her to do.
That’s what worked for me, maybe it will work for you? I’m also a single parent and I need the free time in the evening so I know how hard it is but I sorted this and now my little girl just goes straight down at 7 and that’s it. Be persistent and keep at it