On a page - it is not working when I define a different [menu][menu-nav] and assign page links to it. The workaround was to add the menu: navweight: number to the front matter of every page I wanted in the (footer) navigation and they appeared automatically in the navigation without configuring them in config.toml.
On a category page - works by retaining the code in the config.toml and adding IsMenuCurrent as you suggested.
Highlighting category as active in main navigation when a post is opened - does not work. Adding the frontmatter menu: main makes the post title appear in the navigation. That would mean over 250 entries in the title alone.
I would prefer to define the pages in the config so I can shorten the titles and have the “highlight category when post open” issue work too.
Nav should show the footer menu, but your code made the menu appear on the top navigation as well. I am using .page.path in Jekyll to get option 3 to work, but I am not sure what Hugo’s equivalent is.