What you describe is the purpose of an Environment Lock. That subprocess should have acquire lock logic/call at the beginning and release lock at the end. Be sure to consider what will happen if the other sessions wait for the lock. You may want them all to simply check for the lock and move on to something else if the lock is held.
Is there a reason you don't want to use an Environment Lock? It sounds you're already aware of it, and I don't know of any other way to accomplish what you want without a more complicated solution.
Dave Morris, 3Ci at Southern Company