Como o primeiro código especificado funciona e também com base no rastreamento relatado, tenho certeza de que o problema está no banco de dados, não na sintaxe do código.
Com base na versão do Mysql, tente como alternativa definir privilégios sem especificar qualquer host (%) com base em Documentação do MySQL ,
Também libere privilégios imediatamente após usar
FLUSH PRIVILEGES;
Apenas para ter certeza de que tudo está correto, execute também um
SHOW GRANTS FOR NewUser;
e verifique se NewUser aparece na lista com as permissões correspondentes.