Normally, BMW car will start during the first crank. If you cannot start the engine, you do have some problem.
1. Crankshaft problem - Yes, crankshaft failure will automatically cut out the ignition coil (firing) and the fuel pump. This is a fail safe feature of the BMW. I have experience intermittent problem with crankshaft sensor with my E36. Sometime, the car cannot start but after a few minutes then the car can start. After a few months later, the car cannot start at all. Got it change and the car start immediately.
2. Starter problem - When you turn the ignition key to crank position, the starter should cranked. If it can crank one time and cannot crank the second time, please check the starter relay. It could be worn out. The cranking of the engine draw about 200 amps. High chance of the relay get worn out is there. There is a method to bypass the relay with a jumper wire to crank the engine. Your mechanic should know how to do it. I think your mechanic is also right in saying you have a starter problem.
3. Battery - Since you have change the battery, just check the terminals for any loose connections.
4. Another thing that you might considered is the fuel pump or the fuel filter.