It's a trust issue.
If I try and move away all hell breaks loose
The problem isn't that you sit on the cushion, it's that you have previously tried to move away before she was ready.
If she had that trust that you will always be there as much as she needed you, then by now she probably wouldn't need you there.
But what happens is that the child for home on to the fact that at the earliest possible opportunity you're going to sleep away before she's ready. So what she does is works hard to stay awake because her "reward" for her staying awake is that you stay.
You need to remove that you staying is a reward and change it to being a given, a fact. That then removes her internal battle. If she trusts you to always, always, always stay then she no longer needs to fight to stay awake. She can drop off while trusting that you're not going to run off as soon as she lets herself relax.
It takes a long time to build trust, so this is no quick fix. She's old enough to explain. Promise her that you'll never leave as she goes to sleep (you leave when she's fast asleep - but you don't tell her that). And prove this with your long term actions.
Once she trusts you and the battle to stay awake stops, then you can start the process of gradual withdrawal. Gradual withdrawal only works if that trust is there. It's pointless without it because of exactly the situation you find yourself in.
When she trusts you to stay and no longer battles to stay awake to keep you there - then try standing by the door rather than sitting. But keep the trust! Give it a few weeks, then stand half a step away. But again, keep the trust that you'll stay until fully asleep. Then a step away. Then 2. But at every stage she must trust that while ever she is awake or half awake, that you'll stay.
Finally - I should cavete all of this with the fact that this is the no crying gentle option. It'll take a long time, but will work. There is the other option. It's faster and involve a load of crying. Nothing wrong with that option either.