Tester’s idea is a good one and should be done first. I’m thinking you may have a starter relay or a neutral safety switch or a clutch safety switch on the fritz. I’m not sure if your car has a starter relay or not. You’ll have to look at the shop manual schematics or ask someone who knows. I’m not talking about the starter selenoid usually that is located on the starter itself. I’m talking about a small relay, about 1 inch by 1/2 inch, usually installed in the passenger compartment by the fuses, plugged into a relay plate. So how do you tell? Below is what I do when I have this problem w/my Corolla:
Ask your mechanic to measure the voltage at the two terminals that go to the starter during attempted cranking. Both should be above 9.6 volts, preferably both should be above 10.2 volts to start reliably in cold weather. Measure these voltages directly between the terminals right on the starter and the case of the starter, with both wires remaining connected to the starter.
This will tell you if the problem is the starter or before the starter. If it is the starter, you were unlucky and got a faulty rebuild. You’ll have to take it out, then take it back to the shop and have them test it, just like they tested the first one you took out. This happened to me last year, so it isn’t that unusual. Frustrating, but not that unusual. I gave up on the rebuilds. I just took my old starter to the auto-electric shop and had them fix it, and it has been working great since.