I do not believe they are on the right track, this sounds more like a security issue to me so I would try the below procedure.
Below is a relearn procedure that is typically needed to be done after replacing the ignition switch/lock cylinder so I would try that.
1. Perform a security system relearn. 2. Let the vehicle sit for more than 10 minutes with the key off. 3. Attempt to start the engine, leave the key in the run position monitoring the security system indicator. 4. After 10 minutes, the security indicator will change state (turns off or stops flashing). 5. Turn the key off and wait 10 seconds. 6. Attempt to start the engine. If the engine stalls, wait another 10 minutes with the key on. 7. After the second 10 minute timer has expired, turn the key off for 10 seconds. 8. Attempt to start the engine. If the engine stalls, wait another 10 minutes with the key on. 9. After the 3rd 10 minute timer has expired, shut the key off for 10 seconds. 10. The security system will relearn on the 4th starting attempt and the engine should start and run.
I thought you just wanted to know if the mechanic was on the right track and if he tested the ignition switch for the problem then he is probably correct. For me to say it is one thing or another you will need to do some electrical testing for me so that I can determine the cause if this problem, if you can do that let me know and I will tell you what to test.