I've also been thinking about the boat problem and my temporary fix was to generate custom maps without ports. It is not perfect and wont solve the other problems you mentioned, but at least the AI wont spend the entire game boating. In my limited experience, the AI also sorted itself out a bit, the game's pacing felt a bit more natural and I even had an AI eliminate another AI.