A Send/Sync, cloneable handle that wakes the UI event loop (requests a redraw). Hand it to a background
thread (a file dialog, a notify watcher, a network fetch) so that when the thread has produced a result —
delivered over a channel — it can wake the loop; the app then drains the channel in crate::App::on_frame
and writes the result into signals. This is the bridge between off-thread work and the single-threaded
reactive/UI world (signals are !Send, so the data itself must cross via a channel, not a signal).