I've got my current cat and had my previous one trained to know that if I'm in the bed it's sleep only. If I wake up with them between my legs I'll shift, they move, I give pets, and go back to sleep. I know that's not feasible for all people but I've been lucky with the cats I've had/have.
Personality dependent, I'm afraid. My cat was always so deeply offended that I dare wake her to move her self-heated nest that she would abandon me every time.
She was a big cat too, it's not like I could just shimmy around her or gently lift her. God knows I tried.