Preventing Concurrent Activity Creation
By "complete", I'm assuming you are talking about the status of the activity?

You will need to develop an extension to implement your specific workflow, as there isn't anything in civi preventing having multiple activities with various status and your workflow seems to be specific enough that it's unlikely someone else has done and shared something similar.

The safest point is probably as a pre hook, ie before saving an activity, check that the required other activities with the expected status are there.

However, it this would be a sub-optimal user experience, as a user might start creating the activity without realising it will not be possible to save (because of the pre-hook).

So you should probably alter the display of the contact (as it seems to be the main path to create a new activity) and add a message/change color/add a warning message "this contact is reserved because activity bla has the status..."

Please do share if you implement it, it might help others, at least as inspiration and starting point.