Eu uso keepalived e não sei muito sobre o ucarp, mas eu sempre desabilitei as interfaces mestres. Isso força o escravo a assumir. Se eu quiser fazer do slave o master, eu reconfiguro e reinicio o serviço. Eu então reconfiguro o antigo mestre para ser escravo, reinicio o serviço e habilito as interfaces.
O seguinte texto citado pode ajudar a explicar o que o parâmetro advskew faz.
"advskew: Este parâmetro opcional especifica quanto a inclinação do advbase ao enviar anúncios CARP. Ao manipular advskew, o host CARP mestre pode ser escolhido. Quanto maior o número, menos preferido será o host ao escolher um mestre. O padrão é 0. Os valores aceitáveis são de 0 a 254. " - link
"... para calcular o tempo até que um nó CARP ache que é o mestre, calcule 3 * (advbase + (advskew / 255))" - link
Então, se você tem três hosts, um mestre e dois escravos e os escravos são configurados assim:
slave1 - 3 * 1 + (10/255) = 3,117 segundos
slave2 - 3 * 1 + (20/255) = 3,235 segundos
Então o slave1 sempre se tornará master antes do slave2, já que ele anuncia com mais frequência. Se por algum motivo o escravo1 estiver inativo, o escravo2 se tornará mestre.