This is something I have spoken[1] (slides[2]) and written about quite a lot - and my solution has usually been to add a monitoring system to any feature flag system used.
If a flag hasn't changed state in a period of time, or hasn't been queried in a period of time, then an issue is filed against the relevant repositories. The time period is different based on teams and services themselves, and there are also exclusions for flags which should be kept around.
I'd like to improve the system to do something like an automatic PR to remove a flag, but at this point, it seems more effort than it's worth.
[1]: https://www.youtube.com/watch?v=LZgQBSr36p8
[2]: https://andydote.co.uk/presentations/index.html?feature-togg...