SignalSender
Delivers a wait signal to the node a wait started on.
Signals are an observation, not part of correctness: a lost one costs the waiter a timeout, never a fact. So a sender is best effort and must not hold up its caller (a subscription that has just handled an entry, or the node that executed a derived command): a sender that crosses the network queues and returns, and drops what it cannot deliver instead of retrying.
A signal is worth delivering until its wait's deadline and no longer: a sender gives a signal that long, so an origin that is slow to take it, under load, still ends its wait, and drops one whose wait is over.