What kind of spark test did you do? If you were only checking to see if it had spark that might not be enough. You gotta check for the intensity of the spark which means you have a bad coil. I know it sounds like simple ****, but sometimes it's the simplest thing that'll screw you over.
I'm really trying to think hard at what could be wrong. Have you tried a cylinder leakage test?
Also check your neutral saftey switch. Idk, I can't think of anything else that you haven't already mention.
__________________
|