The problem is, say you have 2 lights overlapping one another. Light one is drawn first, followed by it's shadows (light 1's shadow polygon s will write 0.0s into the alpha buffer), followed by light 2 (which will brighten light 1's shadow polygons), followed by light 2's shadow polygons which will be 0.0 (darker than light 1's shadow polygons) since light 2 and its shadows are drawn after light 1 and no other light will be drawn after light 2. So you see light 2 ends up with darker shadows than light 1.

I'm sure I'm probably overlooking something obvious, but not matter how hard I try I cannot seem to overcome this problem.

You have to render the shadow mask separately. You don't render the light, then darken it by the shadows. You render a mask for the shadows, then use this mask to prevent the lighting from ever showing up in the first place.