Try running a relay in between the push button and the solenoid to ensure its getting ample power.
Seeing as its turning the motor it sounds like it is engaging properly.
So does it engage - motor turn 90* - solenoid pop back out all whilst keeping your finger on the button?
If so that sounds to me like its not getting enough power, which either means your power source is crap, or the starter is fucked and is drawing too much current.