I think colored voting is not necessary here and can be circumvented; for example in the following way: A node i proposes to vote on a list C_i of what it considers to be possible checkpoint candidates. Effectively the voting will then take place on some set C_\cup=\cup C_i of which some subset close to C_\cap = \cap C_i will survive with the status liked (or 1). As long as the voting protocol is safe all nodes should agree on the survivers and can choose the one with the e.g. lowest hash.