Mossy possibilities are limited, but here's something I just tried.
If you replace the button.IndexPage-newDiscussion
selector with button.IndexPage-newDiscussion:not([style])
, the effect will only apply to the new discussion button when it has no direct CSS applied. That would mean under any tag that has a color, the color of the tag will stay instead of the gradient.
I don't think that more is possible without injecting more classes via an extension.
EDIT: it's actually possible to use the presence or absence of a hero banner above to detect which page is shown. For example the following disables the gradient on all tag pages: (though it needs some tinkering, as it's making the button transparent ? )
.TagHero + .container .IndexPage-newDiscussion {
background-image: none;
}