Don't remove them from the program (you'll lose the metrics). Use the "Change Engagement Program Cadence" flow step and change the cadence to paused based on the opportunity stage changing. This will stop any further emails being sent but keep all your lovely reporting.

To qualify for Stream A, a lead would need to download an ebook. What would happen if someone in Stream B downloaded an ebook? I don't want them to go to Stream A. Is there anything I need to put in to prevent this?

I set up the below Trigger Campaign to pause leads that become an SQL while in a Nurture Campaign. I had someone who became an SQL who was in a Nurture Stream. But that person was not paused. Did I do something wrong here?