One solution that has sort of helped a number of this sort of problem is to spray some sort of propellant, (wd40 silicone spray etc) into the intake plenum. (don't use starting fluid!) and if it fires off, then you know several things. Spark is good, and timed right. And, if you can get it to run on the spray, for just a short time, it sometimes will allow it to begin running right, because it is running on it's own.
Another thing, I have a Polaris 800 4-wheeler. It had the SAME symptoms you mention. (The Polaris is EFI all the way) So, it turns out I had fouled spark plugs! Yes, for real, 4-stroke motor, fouled plugs. It took me 1/2 a day to change the spark plugs. They are way down in holes, and you have to remove alot of stuff to get to them. If you start, and run the Polaris 800 a number of times, without allowing it to heat up sufficiently, it can foul a plug.
So, from one shade tree mech to another, you might try that.
(did I mention I am opposed to spending money on mechanics!)
And, as always, use my advice at your own risk!:rofl::rofl::rofl:
Nate