How do sites like Twitch (and other streaming sites) roll updates without any downtime?
As far as I understand, RTMP is a stateful protocol and it uses a persistent connection. So in case of an update to the streaming server, there's no way that the client can simply switch to a different server without having to close the connection first and then performing the handshake again.
It seems like draining the connections (waiting for all connections to close) would be the most appropriate way, but a stream could potentially go for months (if not years), making it impossible to update the server while the stream is running.
I am not familiar with twitch specifically, but the usual way to provide high availability, failover and support for upgrades as you mention is to use some form of proxy in front of the streaming server.
A commonly used SW based proxy is the one source HAProxy: https://www.haproxy.org