Connor, thanks for the suggestion - the lock you're describing here already exists and for most scenarios it does not trigger another workflow.
There's a workaround this which is to use separate connections for the start event and action. You'll then need to configure the start event with a condition to filter out on the user used in the action's connection.
If this is still a challenge, please let me know and we can have a chat.
In the future we will look to make distinct connections for start event and actions and by default the start event will filter out events that were triggered by the connection used for actions.