Yossi,
1. The only way to know if you can open a table exclusively is to do it and see if any error occurs.
2. The only way to chnage atable fromexclusive is to close and open it again and you will need to restore the environment for the table in that process.
With the use of ORDER() and the other funtions available to you you should have no problem reading the state of the table before closig it and then being able to restore the state after
reopening the table.
3. To find out if a tabe is open shared, try to open it shared again and if it fals then it was open shared in the first place.