Next time it happens, unhook the wiring from the hall sender on the dizzy and reseat it - or give it a tap/wiggle - and see if it starts up?
The hall sender (if broken) can deteriorate in performance with heat, so when cold, its fine, run it for a while and it behaves unpredictably. I can also cause it to not start at all and all other sorts of random things.
Hit my project link, and go to the first page, then click the link for
"spark or fuel" - follow that next time it breaks down, it might help give you an insight (rather than blindly buying parts).