Contract PM roles tend to be axe-men -- you're there to kick people and crack whips because you're not part of the org and don't have to worry about future interactions or consequences. Also makes it easy to shoehorn in new ideas and break out of groupthink, which is necessary for big orgs, IMO.
Plus you're gone when the project or milestone is completed, instead of having to worry about finding another role or laying you off.
I've been doing it for 10 years now, and that hasn't really been my experience. Sometimes you might have to push, but you should be doing that as a permanent PM anyway.
You can sometimes have to leave when the project is completed, but more often than not they have a new project kicking off.
Plus you're gone when the project or milestone is completed, instead of having to worry about finding another role or laying you off.