Testing if we can add a tag to hls to tell a waiting room to loop, and then detect its replacement with a live stream.
This test was a success. You can add /loop to the end of the rtmp url you cast to and it will tell the player to be a loop stream. At the end of every loop it will detect if the stream has been replaced.
You can use this to send out a waiting room stream by adding /loop to the end of the rtmp url.
When you want to start the stream simply cast to the same rtmp url without /loop.
Keeping your waiting room loop short is smart. You should have filler banter at the beginning of your real stream as long as your waiting room loop lasts.