Another way to handle this sort of thing it to set up your stone stockpiles to give to specific workshops. So you can select your marble stockpile and tell it to give to the smelter (or to each of the smelters). Then have a non-marble stone stockpile and set it to give to the mason workshop.
I typically have my mason shop with 3 stone stockpiles nearby. One is for marble/chalk/limestone (which have value of 2), one is for magma-safe stone, and one if for non-magma-safe, low value stone. If I'm going to have him make a bunch of cabinets/coffers for bedrooms or tables/thrones for dining rooms, I have the marble pile give to the shop and the others not give to it. If i'm about to make a bunch of floodgates for my magma project, I'll turn off the marble give, and have the magma-safe pile give instead. And if I'm just making stuff for dealing with water, I'll use the non-magma-safe (or I'll just go ahead and use the magma-safe stuff, depending on how much I have and which is a shorter haul for the haulers). This assumes I have plenty of marble/chalk/limestone so that I don't have to worry about flux shortages like the OP.
Another advantage of having piles give to shops is that if your mason is halfway across the fort when he decided to go make a table, he'll select the closest stone that he can use at the time he accepts the job. If there is no stockpile giving to his shop, then he'll probably select a stone right next to him and slowly drag it across the fort to his shop. But if a pile is giving to the shop, he'll walk briskly across the fort to the pile, and then drag the stone a short distance to his shop.