As macros de texto Roll20 não suportam declarações condicionais baseadas nos resultados das matrizes para usuários livres. Para fazer isso, você precisa acessar suas APIs de script, que exigem uma assinatura Pro. Você pode ler mais sobre os modelos de assinantes aqui.
Meu conselho é deixar a seção crit e lidar com seus críticos com uma segunda macro.
Isso estraga um pouco a automação, mas você provavelmente também não precisará dela com frequência.
O que você poderia fazer, se não se incomodar com a desordem no chat quando não marcar um acerto crítico, é separar seu dano de acerto crítico em uma linha separada em sua macro. Se você usar algo como o seguinte:
Attack:[[1d20cs>19 + @{Shadow|dexterity_mod} + @{Shadow|pb} ]] for [[1d8 + @{Shadow|dexterity_mod} + [[ ?{Sneak Attack|Yes, 1 |No, 0} * @{Shadow|SA} ]] ]] Dmg
.......If Crit: addt'l [[1d8 + @{Shadow|dexterity_mod} + [[?{Sneak Attack} * @{Shadow|SA}]] ]] Dmg
Isso lhe dará saída como:
Attack: 19 for 11 Dmg
.......If Crit: addt'l 13 Dmg
Se você quiser analisar as opções de uso do modelo padrão para um formato mais bonito, saiba mais sobre como adicionar opções para o seu rolo aqui.