When you change the caps and rotors , carefully inspect the main coil cable too. One of mine looked to be in new condition last week when I had same issue at cruise speed and returned on one engine. When I gave the coil wire a slight tug, it fell apart in 2 pieces in the middle where it apparently had managed to chafe minutely on the bottom of the cable and had arced to engine ground ( snapping noise when cranking ).
This was encouraged by corroded flat "crossover" caps (brass electrodes) and rotors ( last changed with new ones middle to late last summer 2016.), which added great resistance causing the coil pulse to seek a nearer path of lesser resistance.
Replaced cap , rotor and coil cable, adjusted cam retard slightly and it runs beautifully again like its mate.
If you have a Cam Retard Angle tune-up setting for that engine , you'll need a marine scan device to check or adjust it.
To see if it is a gas issue, you could remove the flame arrestor , pour a small thimble of gas down the throat, re-secure arrestor and see if it will start and run OK briefly.
If so, you might try bypassing vent, questionable quality gas, pickup , anti-siphon valve, delaminating hoses, or loose hose clamps, & all fuel filters/separators, ... by temporarily plumbing-in a clean portable O/B tank with new fresh straight gasoline to the fuel pump to see how it runs.
If you think it is electrical , you could check for steady/consistent ignition pulse when cranking with a timing strobe light on the plug cables. But check caps and rotors anyway.
There are a lot of potential causes for what you describe.