Saccone was starting out in a hole because he was replacing a guy who had spent two decades lying to his voters about supporting their values.
He needed to work twice as hard to overcome that. He didn’t even come up to half-speed.
That is a good point that is overlooked here. Districts where the incumbent resigns due to scandal almost always flip to the other party at the next election. Having the same party win a seat when the incumbent is forced out of office due to scandal is a very rare exception to the rule.