OK; the puzzler is: if I hack menu_overview_form_submit() in /modules/menu/menu.admin.inc and put a die() statement in the first line, it dies (correctly) when I submit the menu overview page on a menu like /admin/structure/menu/manage/devel but if I submit it on /admin/structure/menu/manage/main-menu [my big menu] it doesn't die, i.e. it's not reaching the form submit function.
Of course, you have cleared cache and have the performance items off?
Could this be a setting on my server (e.g. POST is too big? Seems unlikely, but I've tried setting post_max_size to 20MB)? Could some other module be hijacking the form submit for this one menu?
No, no and I doubt it what would be the point?
Yeah, I was reaching with the last one, but it turns out it was a PHP setting, which tripped me up on both servers I tried, so probably reasonably common.
max_input_vars was set to 1000 which meant that on a big menu with 400+ check buttons for "disable" this link and 400+ checkboxes for weight and all the other inputs on a page, that was being hit; oddly, it caused it to just silently return to the menu page rather than display an error. It was only on a second server where I had access to the logs I found the error. Setting it to 5000 fixed the issue.
Pretty much an entire day that cost me. Gah.