There is no scope that does exactly what you want here; test is the best available option.
A test-runtime scope has been requested before (Re: Need for a test-runtime scope?) and the suggested workaround is exactly the ignoreNonCompile configuration you’ve already discovered.
dependency:analyze already has some limitations (“some cases are not detected (constants, annotations with source-only retention, links in javadoc)”). You may have to accept that any test-scope dependencies that it warns against are false positives.
(You could split the definition of your tests into a separate module, which would have no slf4j implementation dependencies, then run them in another module. I don’t think that would be worth it.)