You've got to load test your battery. A bad battery can build a surface charge that is enough to start an engine once, but not be able to crank quickly enough afterwards. After the battery sits for a while, it can build up that surface charge again.

Heat on a boat? Does it not have water cooled exhaust?