Well, I'm still not sure why exactly that quadrant sucks, need to do more linear algebra remedial courses.
In any case, I did notice that the copier node has the option to plug in radians instead of degrees, so...
Much easier expression with less conditional to parse.
vector $aim = <<1,0,0>>;
vector $position = nParticleShape1.position;
float $rad = `angle $aim $position`;
if ($position.z >= 0)
nParticleShape1.rotationPP = <<0, -$rad, 0>>;
nParticleShape1.rotationPP = <<0, $rad, 0>>;
The nice thing about this one, is I don't notice flickering particles, which I'm assuming is a gimble flip. Degrees can rot, I like these rads here.