Is there a way to create a new texture dynamically by combining 2 textures, one displayed on top of another?

You could show them both in a viewport, then take the image displayed and save it as another texture. Or you could take the data from each texture and use your own code to combine them into another.

Yeah, you could do it with a shader and combine multiple textures. I forget what the limit is, but it's probably around 16 textures or somewhere around there. If you just want to do it once (not in real-time, such as animating) then you could use the Texture and Image functions, such as get_pixel and get_pixel to mix two textures and save them as another texture. This will be easier than using a shader.

Thanks for the answers, although what I'm getting from this is basically "try to avoid needing to do this", which I just did.

    It depends on what you want to do but, in general, anything you can pre-process, either in GIMP or Blender, will be easier and faster than trying to do it in real-time in Godot.

    GE100

    You know, you could also solve this by just combining the textures beforehand in a program like GIMP or Inkscape. Making the resource have it baked in is a simple and extremely low-CPU usage workaround. Best of luck.