No, a bad crank position sensor won't stop the starter. It'll turn the engine over even if the CPS is disconnected. The fuel pump won't run if the CPS is bad...the DME/ECU/black box won't turn on the pump until it 'sees' a signal from the CPS.
Also make sure that the engine's grounding strap is in good shape - the starter has to ground through the case, to the engine, to the body via the grounding strap. Don't just look at it; unbolt it, flex it, clean the mounting, re-attach it with a little dielectric grease.
I haven't pulled my starter, not sure how it's fastened. I thought it was two bolts through the transmission flange. I'd still try to get it out and have it bench tested.
You could also attempt to test the starter on the car...I'm not 100% familiar with the BMW, but the usual technique is this:
1. Tranny in neutral
2. Disconnect starter's positive terminal (it'll be the only big wire connection)
3. Connect a long jumper cable to the battery positive terminal
4. Tap the other end of that jumper cable to the fat terminal. It should give you a big fat spark, throw the solenoid, and turn over the engine. Don't hold it there for long, you'll burn out the starter and rapidly discharge the battery.