The stream _id changes every stream, so if the broadcaster goes offline then online, it’ll change.
As for polling for the stream _id after the stream has ended and API has updated, I don’t believe there is a way as the API returns null at that point.
For my stuff, I just poll to see if the stream token contains anything (_ID, game, etc) - if it contains something, then the stream is live but if it returns null then the stream is offline. If the stream was online but I poll and it shows offline, I consider it a soft-end, and I rely on a second poll few minutes later to ensure it wasn’t an API burp and that stream has actually ended.