StyledMapType of terrain map type, and others?

As far as I can tell, a google.maps.StyledMapType is (at least by default) a styled version of the default roadmap (google.maps.MapTypeId.ROADMAP). Is there any way to create a StyledMapType based on another map type, such as the terrain map (google.maps.MapTypeId.TERRAIN)?

Context

I am insisting on a StyledMapType here because—as far as I can tell—other approaches will not work for my application.

Have to be able to turn style on and off on the fly

Whether or not this custom style applies depends on my application state. Any solution that permanently adjusts the terrain map, or requires creating a new map for the new style, is a no-go for me.

Cannot use the existing map type with an inline style

My map uses google.maps.AdvancedMarkerElement, which has a requirement that the map has a mapId from the Google Cloud Console.

Having a mapId causes map.setOptions({ styles: /*…*/ }) to fail, issuing a warning to the browser console explaining that it doesn’t work.

Cannot use Cloud-based styling

Having a mapId is supposed to be for using the Google Cloud Console to control styling—that’s why inline styles don’t work when you have one. But I can’t use that, because the Google account is owned by the client, and us contractors don’t have access. The client set up the mapId for me, but they are not willing to give us direct access, or figure out importing the styling themselves.

Beyond that, as far as I can tell from the documentation—which is terrible so I could be wrong—it doesn’t seem like this kind of styling is something you can change on the fly. So, for example, I could style the roadmap, but then the roadmap would always have that style. So even if I fought with the client to get access or convince them to import some styles for us, it doesn’t seem like it would solve things.

Example

const map = new google.maps.Map(containerElement, {
    mapId: 'some_map_id',
    mapTypeId: google.maps.MapTypeId.ROADMAP,
});

// Grayscale roadmap — WORKS
const grayscaleRoadmap = new google.maps.StyledMapType(
    [{ stylers: [{ saturation: '-100' }] }],
    { name: 'Grayscale Roadmap' },
);
map.mapTypes.set('grayscale_roadmap', grayscaleRoadmap);
if (shouldBeGrayscale && map.getMapTypeId() === google.maps.MapTypeId.ROADMAP) {
    map.setMapTypeId('grayscale_roadmap');
}

// Grayscale terrain map — DOES NOT WORK, exactly the same as the grayscale roadmap
const grayscaleTerrain = new google.maps.StyledMapType( // do I need to do something different here?
    [{ stylers: [{ saturation: '-100' }] }],
    { name: 'Grayscale Terrain Map' },
);
map.mapTypes.set('grayscale_terrain', grayscaleTerrain);
if (shouldBeGrayscale && map.getMapTypeId() === google.maps.MapTypeId.TERRAIN) {
    map.setMapTypeId('grayscale_terrain');
}