Thanks. I've had a look through the source now. I see why it isn't customisable :D
So I guess where the roads are built, if it is consuming the road building materials, it would need to also do this sort of check first:
local cost = Consumption.consumeRequired(construction_materials, hardwareStores, city)
Default to landfill if the material is absent to prevent the city growth stalling, and rely upon the tile queue to back-fill? This is sort of a separate issue to customising road surfaces. Anyway, I think this is straying away from mod discussion into developer discussion.