Then what are the 3 primaries for the spectral locus? (Not the CIE XYZ space)
In theory any 3 primaries can be used as long as they are not in the same direction and all three don't lie in a plane. Recall, we want to define any color with 3 numbers, i.e. any color would be represented by a point in 3D, therefore we just need 3 vectors in a 3D space to represent any point. The primaries are these vectors. We don't want to point them in the same direction or lie in the same plane otherwise we would have effectively a 2D space (a plane), or a line (1D) embedded in a 3D space as we have suppressed one or two degrees of freedom, respectively. So if you want to use a different set of primaries it is just a reorientation of the original set of primaries, i.e., why we multiply primaries by a matrix to transform one set of primaries to another.
In practise it is advisable to have them spaced farther apart so that they cover as many colors that can be physically displayable (i.e., those with positive values). Primaries in the regions of Red, green and blue fulfill that criteria.
And, as I mentioned before, if we want to measure the values for the spectral locus, then for any set of "real" primaries (i.e., those we can display later) it would mean at least one primary has negative value. But that is fine, we are not going to display it at this stage, we are just measuring it. This is how CIE measured these numbers, including negative numbers, using RGB. But CIE did not want to work in negative numbers thinking that people would make mistakes with negative numbers. Therefore a transformation was found to convert RGB in such a way that resulted in all positive numbers, i.e., RGB->XYZ.