It may be the Becm and Engine ECU EMS codes do not match. If they dont match it will crank all day long.
Check the 12 pin white plug in the drivers side kick panel. By your right foot.
Check for any of the pins going green and causing bad connection. This plug has immobiliser signal wire. If Becm sends immo signal and doesnt get a reply because of bad connection it will not start.