I find that roads are some of the first constructions that can force you to confront how your "supply chain" can affect your dwarves ability to work efficiently (or at all).
Roads are designed by Architects. Before the road construction will actually begin, your Archidorf will track down and move to the road construction site all of the specific stones or rock blocks, etc that *you* specified when you uilt the road. The materials list from which you specified the road materials shows the oldest (unused) stones first, with the most recently mined materials appearing last. (There are also groupings of blocks, bars, and logs with the same oldest-at-the-top sorting.)
If you specified the earliest mined stones, are you sure that your Archidorf can reach them? Those stones could be blocked behind a now locked door or floodgate (or possibly stuck under a workshop you built.)
If you specified the most recently mined stones, consider the distance between the stones and the road you're building. Will your Archidorf be able to traverse the width of your fortress and back (encumbered!) before getting hungry, thirsty, or tired? Your Archidorf may get 90% of the way to the road construction site, then drop the stone to nourish him/herself. I believe you will have to wait for that stone to be moved back to a stockpile before your Archidorf can find that stone again.
Finally, if your Archidorf is also allowed to perform other tasks, s/he may decide that after a quick snack, it would be fun to do a food hauling job instead of completing that stressful architecture work.
So how do you mitigate these potential problems? You shorten the supply chain.
If you're building your road from stone, stop mining at the far end of your fortress and mine out a section of the cliff face for a bit, then stop mining altogether. If you now specify the most recently mined rock, you have significantly reduced the distance your single Archidorf has to travel to get the specified stones.
You can use custom stockpiles instead or in addition to the above strategy. Create several small custom stone stockpiles along the length of the planned road site. (Real road construction crews don't return to the quarry for each bag of cement, they have the delivery trucks bring the materials to them for easy access.) The key to this strategy is knowing that haulers will be tasked to move the most recently mined/created materials to the closest stockpile. You could also create a single mining stockpile at the base of the cliff face, then use the "take from a pile" command to have haulers transfer those new stones to your specific stockpiles. Make sure you stop mining for a while so you know that the most recently mined stones are sitting at your custom stockpiles, and you're not picking the newer mined stones from deep within your fortress.
I find it easier to build roads from stone blocks by setting up a mason's workshop outside. I can control the quantity of blocks available to be specified in road uilding as well as the location of the block creation without interrupting my mining operations. Plus it skills up my mason. Again, you can create several small custom stone block stockpiles along the length of the planned road site. Once the stockpiles are almost filled with all the blocks you'll need, make sure you stop making blocks for a while so you know that the most recently made blocks are sitting at your custom stockpiles.And once I started thinking of my dwarves as "real" workers and applied these supply chain process improvements to other areas of my fortress, the overall efficiency of my fortresses have improved.