With full-site-editing menus, how do I create a non-linking top-level menu item with linking sub-pages

The new FSE editor uses a new filter, if you want to hook into that you can do it in two ways:

By hooking the individual block rendering:

add_filter( 'render_block_core/navigation-link', 'test_render_navigation_link', 10, 3);

function test_render_navigation_link($block_content, $block) {
    $attributes = $block["attrs"];
    // string replace the href if you want, by checking the content of $attributes
    return $block_content;

or by hooking the prerender for the entire navigational menu:

add_filter( 'block_core_navigation_render_inner_blocks', 'replace_nav_blockitem_href');

function replace_nav_blockitem_href( $items ) {
    // Loop through the items (they are nested)
    foreach ($items as $key => $item) {
        //recursive loop through $item->inner_blocks
        //once you have found your item then set the attribute url to empty
        $item->parsed_block["attrs"]["url"] = null;
    return $items;

The rendering of the navigation item will not output the href if the url is empty, this can be seen in the source code of the rendering:

This is the line where the first filter is called:

This is the line where the second filter is called: