fix for #12947

remove zk_hosts from unlock, since we already fail if we don't have the lease.
Also, adding logic into the semaphore class when it is not ephemeral to load its own previous lease (to avoid deadlocks)