Base64 não é criptografia
Base64 expressa bytes quaisquer usando só letras, dígitos e alguns símbolos. Ele existe para que dados binários possam trafegar por canais feitos para texto: corpos de e-mail, campos JSON, atributos HTML.
Não há chave nem segredo, então reverter não custa nada. Colocar uma senha em Base64 num arquivo de configuração não a esconde, apenas acrescenta um passo de incômodo. Se algo precisa mesmo ficar escondido, criptografe ou entregue a um gerenciador de segredos.
Quando usar URL-safe
O Base64 padrão usa + e /. Os dois significam outra coisa dentro de um endereço, então um valor colado direto numa query string sai quebrado. O preenchimento = no fim dá o mesmo problema.
URL-safe é a variante que resolve os três casos: + vira -, / vira _ e o preenchimento some. É exatamente a codificação das três partes de um JWT, e também a dos códigos de autorização OAuth ou de qualquer valor que vá parar num nome de arquivo. Use URL-safe quando o valor entra num endereço e o padrão no resto.
O resultado cresce
Base64 transforma três bytes em quatro caracteres, então a saída fica cerca de 33% mais longa que a entrada. Antes disso vem o UTF-8: um emoji ocupa quatro bytes e um caractere acentuado ocupa dois, de modo que o texto já cresce antes da codificação.
Esse crescimento pesa ao embutir uma imagem como URL data:. Para um ícone pequeno, economizar uma requisição compensa. Para uma fotografia, a página passa a carregar o arquivo inteiro mais um terço, e a primeira renderização paga a conta.
Quando a decodificação falha
Isto não é Base64 quase sempre significa que a string veio cortada, ou que aspas e quebras de linha vieram junto. A ferramenta já remove espaços e aceita caracteres URL-safe, então, se ainda assim recusa, a string está incompleta.
Decodifica como binário quer dizer que a decodificação funcionou, mas o resultado não é texto legível. Se o valor é uma imagem ou um zip em Base64, essa é a resposta correta e não um erro.