John we're doing the exact same thing and I have another approach.
You can also just set the processing step to give a static value for the SFDC campaign ID contact field with a conditional statement for when the form field is blank.
(You just add the form field to the conditional statement and leave it blank.)
The UI looks like it's not configured, but it is, and it will work.