delayMicroseconds(delayMicroSeconds); // wait for a period of time
Using names like this that differ only in case like this is likely to cause confusion
for yourself!
The problem with open-loop start up is that you have to limit
the current enough to prevent MOSFETs popping, but not so much that
the motor stalls. This will take some experimentation with PWM drive levels
as this depends on your hardware setup. Having current measuring is extremely
handy.
You need to ramp up the commutation frequency smoothly upto a given point and
then enable the closed-loop commutation feedback. Then you want to look at the
subsequent behaviour to detect if the loop is working (detect loss of lock) and
retry if lock wasn't achieved. You may want to try different acceleration rates after
a retry to cope with different motors and loads.
PS try a PWM freq or 8 to 16kHz in the first instance, you may not need more.