I added a case to the webform and passed the case1 id via the URL.

I made sure the Case Type was "User Select" so CiviCRM does not expect to have case roles added, except for the case client.

I passed the case client CID as a hidden contact on the webform,

I made sure the activity was File on Case  'Case1'

I made sure all the target, source and assignees bits were filled out on the activity.

I passed the activity id in the URL to populate the activity.

I passed CIDs for the target, source and assignee to populate the activity.

This magic sauce prevents an activity being added, when you want to update an existing one.