Answer:
ShoutCast has an option to disconnect all listeners after a certain number of seconds if no stream source is connected. Since you're relaying a stream and no source is being used, ShoutCast is simply disconnecting the listener after 30 seconds.
You can disable this by editing the stream configuration, clicking the "Advanced" tab, and setting "Disconnect listeners if source disconnects" to "No". You'll need to do this for any relay streams that you create.