Нафик свой, я уже решил проблему.
Прога на golang запускается при старте на роутере, постоянно проверяет каждую секунду наличие файла /var/openvpn/OpenVPN0/openvpn.config.
Если файлик есть то каждые 10 миллисекунд проверяем otp_code внутри и подменяем если не правильный.
В результате встроенный OpenVPN клиент сначала не может подключиться потом подключается с нескольких попыток и все ок.
Встроенный клиент после подключения удаляет файлик openvpn.config и моя прога переходит в режим ожидания с проверкой через 1 секунду.