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.