There are a couple of things which may cause this, some of which you have already addressed. IMO oil and impeller are not something that would cause this. Have you had a shop check the ECM to see what code is being thrown?
1. Bad Computer, check for a loose connection before replacing the entire board
2. Fuel Pump, could be inconsistent fuel pressure I've seen it take up to 40 minutes to drop fuel pressure for no apparent reason
3. Water/crap in tank, not fun to get out and a pain to diagnose unless you have an alternate fuel source to run the boat off of.
4. Knock Sensor, this is probably not the problem but you never know, if all else fails give it a try.