Tentando obter o $? no contexto Ansible que você nos mostra, ter o estado de sucesso do último comando dado ao Ansible para executar remotamente não funcionará.
O $? variável é para retornar o status do último comando executado no shell atual.
Na configuração que você está mostrando, você não tem garantia de que o último comando em execução seja o mostrado no Ansible, nem o mesmo shell e, possivelmente, dependendo da configuração do cliente ssh, nem mesmo a mesma sessão ssh.
De acordo com o exemplo no guia oficial Ansible: para fazer outra coisa se a última tarefa / comando executado for bem-sucedida ou não, você faz:
tasks:
- command: /bin/false
register: result
ignore_errors: True
- command: /bin/something
when: result is failed
- command: /bin/something_else
when: result is succeeded
Para mais detalhes, consulte Documentação - > Ansible- > Condicionais