I'm curious if the timing belt was replaced recently. I've seen the wire going to the crank sensor damaged by the serpentine or timing belt if it's not routed properly after a timing belt replacement. That could give you a code without cranking the engine because the ECU is looking for continuity on that circuit when the key is turned on.