Let A be the last node that has a closing channel transaction updated. How does node B know that everything ended well and all nodes were updated.
It is solved by timeouts. You start from some huge timeout of "N*unit" and decrease it by "unit" for each node. In this way, timeouts are reached from the last node to the first. That means the first node cannot simply run away with its coins, because the timeout for the last node occurs first. Also, there are penalty transactions, so each node doing stupid things is putting the whole channel balance at risk.
As far as I understand, there are two options:
1) If node B does not receive confirmation during the timeout period, the transaction is considered incomplete.
2) If node B does not receive a denial during the timeout period, the transaction is considered completed.