Yes, you have the right idea:
Set the Remove Campaign to do this:
Smart List: Trigger: Fills Out Form is X on Page Y
Flow: Remove from Campaign A (consider doing Add to List "Completed Survey" if you want)
I'm not quite sure about knowing when the person complete the whole survey. Check if there's a webhook or SOAP API that will work.
But the form is embedded. How can you track activity for an embedded survey?
Having the same problem...seems like the best workaround would be putting a field-less form at the end of the survey (just a "Done!" or "Submit!" button), but I'm guessing the embedded survey already has one of those...