Bit of a hacky way to do it (relying on either side of the decimal point for sorting each axis), especially if you end up needing more structured data later, because the columns are not distinguished. I suspect it will also get confused by very small separations in Y.
Here’s another way of doing it that sorts by X first, then uses a Create Set component to identify the unique X positions and the Map output (ie. which Set value does each List Item match?) to allocate each point to a tree branch for each X value. Then we sort each branch by Y. We can flatten that tree to get a contiguous list, or keep it as is if you ever need to operate on columns.
structured:
sort by x then y.gh (11.0 KB)
EDIT: Removed a superfluous graft->flatten leftover from earlier experimentation

