This problem is inside the solenoid, not with the button or its wiring. Since crossing the studs gives good cranking, clearly the solenoid's internal high current contacts are not closing properly: the poor connection will be producing a lot of heat whenever you use it this way.
Remove the solenoid, disassemble the stud end, file clean flat contact surfaces on the stud contacts and switching bar. Clean the moving parts as well as you can. Reassemble and it should be OK. Replace it if it's badly burnt or seized mechanically.