what i think is happening
When you "crank" the engine the injectors are putting fuel into the engine but the fuel does not ignite and burn. The unburned fuel is the smoke you get after the engine starts. When the engine starts quickly, you do not have the build up of unburned fuel so you do not have the smoke. If the air/fuel mix can not get hot enough the fuel will not burn. some of the causes of not enough heat, are a slow turning engine, that could be a result of weak batteries not providing enough power to the starter motor. Bad connections at battery cables, Worn out starter motor. another cause could be worn pistons/rings/cylinder bores, that leads to low compression, low compression will not heat air/fuel mix enough to burn. anyways, lots of possibilities.