Factory reset and erase options don't work on jailbroken iPhones, so this is the reason why the default method is not working. I met the same problem with my old iPod Touch, however. finally fixed the problem by following this step by step tutorial: http://www.safewiper.com/tutorials/delet...-everything-on-iphone.html It writes a set of random digits to the local disk to make sure data is not recoverable. Works on both normal and jailbroken iDevices.
Possibly replacing a new button will fix that problem. But it depends. Need to check the circuit before making any decision. Better to look for personal workshop around your home.