Por que decifrar com a senha errada não mostra um texto embaralhado?
Porque AES-GCM é uma cifra autenticada: junto do texto cifrado vai uma tag de 16 bytes calculada com a chave correta, e o WebCrypto verifica essa tag antes de devolver qualquer coisa. Se a senha errada gerar uma chave que não bate com a tag, a operação inteira falha com erro em vez de produzir bytes aleatórios disfarçados de texto.
O que o PBKDF2 realmente evita ao derivar a chave da senha?
Evita usar a senha crua como chave de cifra. PBKDF2-HMAC-SHA256 aplica a função hash repetidamente, 210.000 vezes por padrão nesta ferramenta, sobre a senha combinada com um sal aleatório, o que torna cada tentativa de força bruta contra a senha centenas de milhares de vezes mais lenta do que um único hash direto.
Por que o mesmo texto e a mesma senha geram um pacote diferente a cada vez?
Porque o sal de 16 bytes e o IV de 12 bytes são sorteados de novo em cada cifragem com `crypto.getRandomValues()`. Isso é intencional: garante segurança semântica, ou seja, ninguém consegue saber se dois pacotes escondem o mesmo texto só de olhar para eles.
O texto ou a senha passam pelo servidor em algum momento?
Não. A cifragem e a decifragem chamam a WebCrypto API diretamente no navegador; o pacote base64 que sai da ferramenta já está pronto, sem nenhuma chamada de rede envolvida no processo de cifrar ou decifrar.