I've been watching this play out for years, and my crystal ball is telling me that SLS will only be cancelled after it blows up. . . in the press.
What I mean by that is, it has to become a laughingstock. Right now it's a laughingstock among space nerds, the space community, but the general public has no clue. The way I see this playing out is, first Starship will get in some successful orbital flights, then the press will pick up on the disparity and begin lampooning NASA's wildly expensive "rocket to nowhere" (which means many people will be hearing about SLS's existence for the first time ever), and then—finally—the senators and others who've kept SLS going all this time will begin to feel the heat of national public opinion, which they've never had to really contend with before. They'll be put on the spot to actually try and defend SLS, and they won't be able to.