Oi Pedro, tudo bem? Achei bem legal seus projetos, mas olha ai que o link de dois deles está apontando para um projeto só.
Essa última pergunta, sobre quando deve se sentir satisfeito com o seu javascript é uma questão difícil de te dizer a resposta, ou seja, não tem receita. Depende muito.
No geral, me sinto satisfeito quando não encontro desafios que me deixam meio duvidoso sobre a solução. Quando vejo um site muito banaca que tem alguma funcionalidade muito diferente que eu não tenho a mínima ideia de como faz.
Vai muito do projeto. A dica aqui para detectar pontos fracos é tentar desenvolver um projeto completo. Onde você teve mais dúvidas? Onde deu mais trabalho? Onde você não teve a mínima ideia de como resolver?
Muitas dessas questões não vão testar só seus conhecimentos sobre a linguagem que você usa, mas também vão por a prova o seu raciocínio lógico. Elas não vão só te mostrar se deve estar satisfeito ou não, como também vão te mostrar onde deve se aprimorar.
Estudar testes também pode ajudar muito a identificar coisas no código que escrevemos que podem ser escritas de uma forma melhor. Aqui você também vai encontrar pontos sobre legibilidade e testabilidade de código, coisas que com toda certeza, você deve se atendar.
Atente-se também a acompanhar as novidades da linguagem e o suporte dos navegadores. A cada atualização temos novas formas de escrever trechos de códigos melhores.
Sobre o último ponto. O Diego Eis, no livro "Guia Front-end", pela Casa do Código, comentou sobre termos basicamente dois tipos de front-end. O front-end que está mais virado pro lado do design e o outro que está mais virado pro lado programador.
Manjar muito javascript vai te levar pro lado mais programador da força (hahaha). Vai ser diferencial pra você? Depende do seu objetivo. Se pretende posteriormente pegar uma linguagem back-end por exemplo, saber muito javascript pode te ajudar bastante na migração. Se pretende trabalhar pesado com as bibliotecas fortes do mercado como React, Angula, etc. Também vai ser um diferencial.
Isso por que caso você não consiga fazer algo com o framework em si, você vai ter conhecimentos suficientes para criar algo do zero, testável, integrável, etc.