Could be a short in the start button switch.
The contacts in the handlebar switch ware out and occasional don't touch when pushing the start button.
Do some electrical testing on the switch so you don't waste your money on a part that isn't broken.
Almost always a corroded earth/ground. Heat causes expansion so you get a better connection, which might explain why your bike starts after you get home. Pinpointing the failing earth is not always easy, probably worth starting at the switch and battery to starter motor.
My suzuki did the same thing. Take the seat off and find where the battery and the black wire is and skin the wire and then connect it back with electric wire and it will fix the problem. This is a real thing I did to my bike and I had to ghetto rig it long story short it works trust me
Bad battery, some kinda drain on it, sticky relay, starter solenoid needs a rebuild, poor cabling, dirty starter switch, bad/dirty connectors. Gotta VOM? Time to take off the covers, dude. Haynes and Clymer have them skee-maa-ticks.
It sounds like the starter motor is starting to seize. You broke it loose when you bump started the engine. Have the starter checked.
you have an intermitant fault, first check the handle bar button open it and check for rust, then check wiring down to starter motor, then remove if needs and replace bushes or recon motor, also main fuse for ignition if in dought replace.
Possible lose or corroded battery connection and low battery charge.
wiring at selinoid and motor, clean with sandpaper