The thing that fixed this for me was accepting that teaching time is the real cost, not play time. A ninety minute game with a twenty minute teach is a two hour commitment for everyone at the table, and it only works if nobody is tired.
So now I check the teach, not the box. Anything I cannot teach in ten minutes gets played maybe once a year, and I buy accordingly. My shelf got smaller and my play count roughly tripled.