O motivo pelo qual json está vazio é porque curl falha.
A razão pela qual curl falha é porque; como uma medida de segurança (portanto por design ), o OpenVPN não permitirá que nenhum pacote atravesse o encapsulamento enquanto qualquer script que foi iniciado pelo binário openvpn ainda está sendo executado.
Você precisará encontrar outro método para invocar seu script.