Fix dynamic color overlap (manipulate/animate)

I am making a Manipulate graphic that involves two points rotating on a circle with their trajectories being traced in two separate colors. Everything works fine until each point makes half a rotation, after which the color of the trajectory of the first point overwrites the overlapping trajectory of the second, but not vice versa. I am looking for a way to make it such that when blue catches up to the tail of red it begins to write over in blue and when red catches up to the tail of blue it begins to write over in red without simply hardcoding in ranges (in case I want to add more points in different spots). Ideally, I will be saving these as animations at some point.

Here is my code:

Manipulate[  Show[ParametricPlot[{{-Cos[x], -Sin[x]}, {Cos[x], Sin[x]}}, {x, 0,      a}, PlotRange -> {{-1.05, 1.05}, {-1.05, 1.05}},     PlotStyle -> {Red, Blue}, Ticks -> False],    ListPolarPlot[{{a, 1}}, PlotRange -> All,     PlotStyle -> PointSize[.05]],    ListPolarPlot[{{Pi + a, 1}}, PlotRange -> All,     PlotStyle -> {PointSize[.05], Red}]], {a, 0.01, 2*Pi}]