relay: add a distinct stop event for user stopped disconncects

* things were getting messy as "disconnect" was used for two very different scenarios in terms of handling events
* making user disconnect = stop makes much more sense