One spinner covering the whole transaction lifecycle tells the user nothing, and a slow block looks exactly like a failure
We model simulate, sign, broadcast, pending, confirmed, replaced and reverted as distinct states the interface can show
A user with a stuck nonce sees that fact and gets an action — speed up, cancel, wait — instead of an indefinite wait








