I would think some shader “layers” and/or “masks would be a good way to achieve this. You could use some bump and even “draw” in the height changes as well as the texture color. Then you could do another layer/mask for the grim and surface imperfections. This would be worth looking into.