OK. Stop seeing it as you need to get her to sleep. She's older now, you can't make her sleep. Instead, your role is to support her to learn how to do it herself. And that means minimal input.
At the minute you pat her to sleep, and if she gets up, you probably lie her back down? That all needs to stop because it's not helping her learn how to get to sleep by herself.
So how about at bedtime you just sit with her. But you don't interfere. You don't talk. She might shout, she might cry, but you do the least you possibly can. You have a one-liner such as shh it's time to go to sleep now, night night. You only say that.
Just sit on your bed, or right next to the cot if you prefer. Be prepared that it might take 2hrs. Take a book in with you. She probably will cry. She probably will shout. But better at bedtime than at 2am. And at bedtime her drive to sleep will be highest so defo start with bedtime.
I know she vomited when you did controlled crying before. I'm thinking that's because you'd gone out of the room so I'm hoping that doesn't happen. But this first night you need to judge whether you're in fact making her more wound up by being in the room with her, because that can happen.
Stick with a solid daytime nap and the earlier bedtime. I think that's helped a bit already (although not consistently yet) but even if not it's still the right thing to do. This is the next step. It will all come together.
Also if her dad is around then consider which of you is best to do this job. Someone who can stay cool under pressure and be kind but firm.