If the symptom is engine will not crank when hot, it is mostly the starter or solenoid issue. Even with weaker battery, the engine should crank. The problem is that we do not know whether the engine crank or not.
Knocking starter is not a good idea, though it may work. Knocking may cause permenant dead of starter, if there is nothing wrong with it.
Another crank but no start when hot situation could be fuel problem. changing a fuel filter and check the fuel rail pressure will help to tell.