Vertical sorting always uses the innermost rows axis. So when the n-axis is the innermost rows axis, the n-axis becomes sorted. I agree that that isn't ideal in this scenario. In fact I can't think of any reason you would ever want to sort within the n-axis. I never noticed this or thought about it before. In this scenario it would definitely be better to sort on an outer axis. We'll need to enhance the sorting functionality to accommodate this.
In the meantime: I know this isn’t ideal, but maybe you could put the n-axis in Columns so you can sort by percent, but still keep frequencies and percents side-by-side. Another option would be to put the n-axis on the outside of the measures, but then you would have one table for percents and one for freqs (they wouldn't be side-by-side). Or you could just manually order the measures and turn sorting off completely.
Maybe this went unnoticed due to testing on frequencies higher than 100, placing them always below the percents. Thanks for pointing this out. I'll post an update here when it is resolved.