Você está tentando aninhar um comando usando ""
dentro de outro conjunto de ""
. Isso não funciona a menos que você inverta o par interno. Do jeito que você tem, existem 2 strings entre aspas:
"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i $PEM -t -t $INSTANCE_USER@$INSTANCE_IP "
e
""
e uma série sem aspas de tokens no meio:
rm -rf /home/$INSTANCE_USER/$INSTANCE_DEPLOY_DIR ;mkdir $INSTANCE_DEPLOY_DIR
então o ponto-e-vírgula está sendo interpretado pelo seu shell local original, tornando o comando mkdir inteiramente separado do ssh.
A versão simplificada funciona por pura sorte. (O fator decisivo é que você não tem um ponto-e-vírgula na porção sem aspas, mas também teve sorte que o ssh não se importa se o comando que você deu está em um único argumento ou não.)
Altere a parte interna para
\"rm -rf /home/$INSTANCE_USER/$INSTANCE_DEPLOY_DIR ;mkdir $INSTANCE_DEPLOY_DIR\"