Leadership timeout can sometimes take too long, such as in test cases. However, it is possible to infer a leader is available based on RPCs that must go through consensus. Therefore, have a way to update the leadership status off the watch path.
Move out of watch code since will be shared with lease code. Also assumes leader does not exist unless watch can be successfully created.