As i don't see any way to achieve this requirement OOTB, i had an idea to implement this requirement something like as follows:
In step1, write a Connect-Wait method with some waitSeconds as 10 for example.
In step1, now you need to make sure whether the page is locked or not using isPageLocked(tools,aPage) function. If the page is locked then Connect-Wait step should be executed to wait for 10 seconds before the 2nd attempt.
Now in the Step1, add the for loop to iterate for some fixed number of retries i.e. 3. So that the system will retry for 3 times to check the lock is being held by other user or not.
Now if the lock is not being held then Obj-Open-By-Handle method needs to be executed, if not skip this step as the page is still being locked by other user after 30 seconds.
Important: You need to define the fixed number of retries and the seconds to wait as it might lead to a deadlock. Hope this kind of approach might help you to achieve your requirement.