The only time I've had that issue was with a bad starter. I went through a couple. The first one was turning the engine over slower and slower until one day it would just click. The next one did what yours is doing, it would start the car great, but occasionally it would get stuck cranking even if I would pull the key completely out. This one was actually from an MC1 that had been siting in the junkyard for awhile, so not a huge surprise I guess. A brand new starter and the car has started great ever since.
So I would try a whole new starter, I'm sure that'll fix it. I would have thought a new solenoid would make it work, but there must be something else that gets stuck in there.