Confirmation of Dijsktra application explanation
It's more traditional to describe dijkstra with the open and closed sets:

You start with an empty closed set and an open set containing $ \{ (A,0) \}$

You select the node with the lowest cost and remove it from the open set, then you expand the neighbours and add them to the open set $ \{ \{B,1\}  \{D,2\} \}$ or update the elements in the open set and Add the selected node to the closed set

step1:
open = $ \{ (B,1, A),  (D,2, A) \}$
closed = $\{(A)\}$

step2:
open = $ \{ (C,4, B),  (D,2, A) \}$
closed = $\{(A),(B,A)\}$

step3:
open = $ \{ (C,3, D)  \}$
closed = $\{(A),(B,A),(D,A)\}$

There is no actual sense of "backtracking" because you are considering all the open nodes in parallel.

Many other search algorithms work in the same way with the only difference in how a node is selected from the open set. Breadth-first takes the oldest node in the set, depth-first takes the youngest, Dijkstra takes the node with the lowest cost, A* takes the node with the lowest cost+heuristic.