Para responder a cada um dos seus pontos:
1 - Você está correto em analizar a proteção por senha das chaves OpenVPN para proteção por senha de chaves SSH.
2 - Sem usar nenhum método de autenticação adicional O OpenVPN depende apenas da verificação do certificado do cliente pelo servidor (e idealmente a verificação do certificado do servidor pelo cliente) para autenticação do cliente. Isso torna a revogação do acesso de um cliente individual uma questão de adicionar o certificado do cliente a uma lista de revogação de certificado (CRL) (compatível com as versões 1.5 ou superior do OpenVPN) ou remover o material de chave do cliente (ou alternar os certificados em todos os seus outros clientes). Se você não estiver usando um método de autenticação adicional, precisará ter uma CRL para permitir a revogação do acesso do cliente.
Tenha em mente que a senha que protege as chaves não ajuda em nada: autenticação adicional. Essa senha apenas "desbloqueia" a chave no dispositivo cliente - não alivia o problema de autenticação adicional do usuário no cliente para o computador servidor (e o problema de revogação de acesso).
3 - Você deve gerar os pares de chaves privadas / públicas nos próprios clientes, em vez de transmiti-los pela rede. Você pode gerar a solicitação de certificado no cliente, enviar a chave pública (em uma solicitação de assinatura de certificado) até sua CA para assinatura e instalar o certificado assinado no cliente. Tudo isso pode ser roteirizado, e tenho certeza de que alguém já fez isso (e espero que o produto OpenVPN licenciado comercialmente possua parte da funcionalidade incorporada).
Eu encontrei este projeto Meu Assistente de Certificação que foi escrito apenas para essa finalidade, mas eu iria para o script de toda a coisa em o cliente usando as ferramentas de linha de comando OpenSSL em uma tentativa de tornar todo o processo invisível para o usuário.