C2A5I is about as good as it can get right now, it’s at the limit of what I can do with it. The Garg nearly ALWAYS behaves properly. Though he’s a little buggy (sometimes stutters or does a weird animation for a split second) he nearly always does what he’s supposed to. He will chase the players back into the tunnels from the courtyard if the player goes in there, and he will patrol the edge of the water sections if you jump into them. He ONLY shakes the tower when you’re on it, and he resumes attacking you if you jump off it. He follows you down the tunnel to FaF if you destroy the tower without killing him.
The ONLY thing I can’t get to work properly is that he won’t patrol the edge of the water sometimes, and I know exactly why. I use path_corners to set his patrol route when you jump in the water, but there’s an inherent limitation in path_corners where if the NPC is more than 500 (or something like that) units way from the path corner it simply can’t find where they are. So if the Garg’s FAR away, and you jump in the water, he will walk over to the tower and wait there rather than patrol the water. It’s not perfect, but it’s a limitation I can’t really overcome. It’s still decent enough. I’m trying a few workarounds now and I’ll see if anything works.