As far as I know it seems this is the setting you enter in your settings.json to enable unused variables & imports that aren't used to appear grayed out.
"editor.showUnused": true,
I do get an underline and if you hover I get an underline and message on hover.
What am I missing?

In my settings.json apparently I commented that the following did the trick.
"javascript.validate.enable": true,
/* this controls having your unused imports or variables to appear grey */
* builtin language features extension solution:
I am adding this just in case someone gets stuck like me. I had the same issue and the following was the problem.
vscode has @builtin extensions. One of them is typescript and javascript language features. If it is disabled the features will not work. So just go to extension and search @builtin typescript and javacsrtipt language feature`, click the cog icon and enable the extension.
For me, adding "editor.showUnused": true, in settings.json in the .vscode directory worked.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With