National Popular Vote Interstate Compact is a viable path to getting a national popular vote. Essentially if enough states agree to send all of their electoral votes to the popular candidate then the popular vote winning candidate will win the election. The compact will only go into effect once enough states agree that would make a majority. Right now there are states with 206 electoral votes that have agreed and only 65 more electoral votes would be needed.
I do feel like your proposition is harder to convince people to enact. Right now my state has finally changed to be for a party I support I don’t want to support legislation that will mean some of those electoral college votes will go to the other party, it would be more fair on the state level but not nationally. Sure I’d be okay with it if other states that vote for the other party did the same thing. It becomes this standoff where people want the other side to move first. That’s my favorite part about NPVIC is that it does away with the messy middle ground.