I understand from where your headache is coming from. Alternative workaround.
There are few possible workaround, but this is a workaround it came up with in my mind.
First you creat physical field, called LockOrUnlock and default value is set to “Unlock” through initial setting. And always hide this field from any view.
Create action set this field value to “Lock”.
Create workflow to fire this action only on the condition of
Another workaround… NOT(LOOKUP([_THISROW].[ID],“TableName”,“ID”,“Status”)=“Completed”) in Editable? option will do that job because you haven’t saved that value yet.