In the CCM7 SRND Cisco recommend using a Server Load Balancing (SLB) device to create a virtual IP address for use in IP phone URL's.
The SLB device accepts phone requests to the virtual address and then distributes them to the real CUCM servers. Most SLB devices can detect a failed server and stop sending it requests until it is back on-line.
As not every customer has an SLB appliance in their network I often use round-robin DNS to distribute requests between CCM servers.
For example, in a network with a Publisher (192.168.0.100) and Subscriber (192.168.0.101) I would create a DNS record for a host called ccmcluster and register it against the addresses of the two CCM servers.
I then use this hostname in phone urls. When phones use DNS to resolve the hostname they are alternately given the IP addresses of the Publisher and Subscriber. If one is off line the phone eventually connects to the remaining server.
This however may not be a solution for you because, as far as I am aware, it is not possible to login/logout of Extension Mobility in a CCM 4.x environment. This is possible for CUCM 6 and 7. (It would be worth checking whether things have changed for CCM 4.3 as I have never used it).
Please rate if helpful.