The same symptom plagued me for a couple of seasons - I also looked everywhere (especially the fuel system) for a solution, but in my case, it turned out to be a sticky timer base. This problem seems to very wide spread, and unfortunately few people seem to have run into a solution for it.
Anyway, this was my problem and my solution, so just thoughts for you to consider - yours could be caused by many other factors.
Explanation - the timer base is operating completely normally most of the time - so you can't check for the problem except for when you get the stalling issue out on the water. Someone on this forum told me I could just check for a sticking timer base at home - true in some circumstances, but not in this one.
Joe Reeves has posted a solution elsewhere if it is this issue - either slightly bending the timer base retainer clamps to allow a bit more movement, or to add thin washers under the clamp mount points, again, to give a bit more freedom.
The failure mechanism is that the engine is running at temp, and turned off. The water all drops out, and the residual heat spreads everywhere, causing the timer base to bind. Once restarted, it takes a little while for the block to cool down again, and free up the timer base.
I do a lot of water sports towing - and found sometimes I had this issue even from just idling after a tow - there just wasn't enough cooling water at idle to deal with a hot engine. Thin washers sorted this for me, however, I still occasionally get binding after a hot shutdown and probably need slightly thicker washers.
Nick.