I appreciate your help, but I don't feel as though you understand what I'm saying, and that's really becoming frustrating.

I'm not sure how I can rephrase it, but I'll try.
Please look at line 444 and line 461 in flexiadvsearch.php, and notice the table alias:
Code:
LEFT JOIN #__flexicontent_fields_item_relations AS f
and likewise, line 639 in the same file:
Code:
JOIN #__flexicontent_fields as f
That is
not something I did. That is the
untouched distributed file, straight from the 15-dev zip.
Changing the alias for the #__flexicontent_fields table from f to something unused (fi) resolved the custom ordering 404 error.
#__flexicontent_fields_item_relations is aliased to f 4 times (lines 438, 444, 455, 461), and to f2 4 times (lines 473, 479, 490, 496).
#__flexicontent_fields is aliased only once, and it is aliased to f (line 639).
Resolving this resolves the error I originally posted about.
I'm not trying to do the second level ordering via PHP -- I just want it to work through the normal search configuration options.
Your image in the example below SHOWS the level 2 drop-down.
This matters because when the drop-down is SHOWN, level 2 ordering DOES WORK -- even
without using the drop-down.
When the drop-down is NOT SHOWN, level 2 ordering DOES NOT work.
...and on changing to 15-dev, now only the first result on a page seems to have a categories array (and yes, I do have categories set as a field that search should render).
All the other results on the page have an empty array.
This result is the same whether I use my custom default_results.php or the unchanged one from the zip.