It's the Neutral Saftey Switch Sensor. I had same exact problem. took me months of frustration and 5 different mechanics. None of them could figure it out.
Well after tons of research on my car I found that if the neutral saftey switch starts to go out the sensor stops telling your car its in neutral. and your car wont start if it thinks it's still in gear.
I replaced mine 2 years ago and Its started everyday since.
Try it. You'll thank me.