Check lock comment after first process exits, it should say ""Automatically released when session finished"" - that means you got the problem I described, which is locks are not persistent.
Create some queue, call it Locks for example and use that to store your locking state. For example, you can add item ""myprocessnamelock"" and check it's existence, delete it to ""release"" lock or use Tags, Status, whatever - up to you. Just don't rely on get item, that would go into exception state after process ends as well (but item stays in queue).