If you arrange all your assets and smart campaigns within the nurture program folder, you should be able to trigger off of "opens email" and set it so email "contains" the name of your engagement program. Then, you should be able to change program status in the flow to whatever is available for that specific chanel (happy to explain this further). Also, to carry out the rest of your requirements, you might limit the campaign to only run once.
Hope this helps!
-Josh