I have removed stubborn cranks with a ball joint removal tool, commonly called a pickle fork.
Any alignment shop will have one, simply place the forked end between the bottom bracket and crank arm and smack it with a hammer.
Crude, I know but it works.