I wish I could supply an answer, but sadly no.
It seems like you have replaced all the likely suspects.
A few of us have had to use the "blip" method of starting a warm/hot engine. Just push and quickly release the starter button, and it starts up. If we continue to hold down the starter button, it cranks and cranks. Though eventually it starts.
This may be related to your lack of spark after the first couple of cranks. Haven't solved the problem yet. But will follow this thread in hopes of a solution.