Então, aprendi que o OpenVPN fornece uma maneira de iniciar um script depois que o túnel é criado. Para isso, no meu arquivo /etc/openvpn/toto.conf, adicionei a linha
# run /etc/openvpn/titi.sh when the connection is set up
up /etc/openvpn/titi.sh
Note que o parâmetro script-security no arquivo conf deve estar corretamente configurado (pelo menos script-security 2, veja man of openvpn).
Aqui está o conteúdo do meu script titi.sh:
#!/bin/bash
(sleep 60 && ddclient -daemon=0 -debug -verbose -noquiet -force >> launch_dd.log) &
O primeiro script não tinha o sleep 60, mas estranhamente quando o script foi chamado e o ddclient foi lançado, meu IP ainda era meu IP do provedor e não o IP da VPN, mesmo que tenha sido lançado com o parâmetro up OpenVPN. Talvez seja por isso que não estava funcionando em primeiro lugar.
Então eu simplesmente disse ao script para esperar 60 segundos antes do lançamento. Agora meu IP está configurado para o IP da VPN quando eu reinicializo o servidor.