Thanks again, megalomaniac. Your posts gave me hope and I managed to restore the cable to working RGBHV output. Soldering to the tiny broken leg took several attempts, but it worked out in the end. I only soldered to the leg, not to the PCB.
I made sure everything within the plug was stable and glued the housing together with epoxy, both so that it wouldn’t open on its own and so that I wouldn’t fiddle with the plug again.
The cable works just fine when connected directly to a CRT monitor, but hooking it up to an amp (Extron 164xi) gives a very unstable, flickering image. I guess there’s something wrong with the sync or ground.
Right now, I’m using both the original black D-Terminal cable and a white VGA cable I soldered to that.

The R, G, B returns within the black cable which shield the R, G, B signals are wired to the responding R, G, B return wires on the white VGA cable. I checked for continuity several times.
Sync ground (VGA pin 10) is wired to the main plug ground connector. Ground (VGA pin 5) is wired to the black cable’s shield ground (which is connected to the main plug ground connector as well).
I believe that the problem is the white cable. Without the shield around the RGB signals, there might be interference with the sync signals, making them somewhat noisy. So my guess is that by removing the white cable and soldering the VGA connector to the black official Gamecube leads directly should make the sync clean again.
I could also crack my working VGA cable open to see how it’s done there, but to be honest I’d probably destroy it while doing so. Just writing here in case someone has a similar problem. And also hoping for someone being able to confirm my belief about the sync interference problem.
It’s also possible that my soldering on the H/V pins on the Gamecube plug is bad and they are so close to each other that they are causing interference. I don’t think this is the problem because the cable works perfectly well when connected to a CRT directly, but in case the “remove white cable” approach fails, it has to be that.