Like you pointed out the User Status Profile is set at the Network Header and not the Activity level, so you cannot have a different status profile by Activity without having different Network Headers.
You can use validations to make sure a certain User Status is not set on an Activity per the Control Key. You would need some simple code. This would prevent it from happening but the users would still see the possible statuses.
The other option is to create new networks by control key, this is totally possible within a project.