The way Maine does it, is divide into districts and then award the +2 to the winner of the popular vote. This seems alright to me, though susceptible to gerrymandering of course. I'd personally just run a straight popular vote -- IRV if necessary to get it down to two candidates -- and apportion the EC votes that way.
Gerrymandering becomes a much bigger issue with more populous states - Maine has 2/4 EVs pegged to district, and Nebraska 3/5. Texas would have 36/38; California 53/55. Those extra 2 EVs aren't as meaningful when they're less than 10% of the state's total.
I realize this isn't exactly what you're proposing but that's why I see the EV per district route as a bad one.
The districting thing is a valid concern, but I mean, let's be honest, it sucks to be a Republican in Massachusetts or a Democrat in Texas when it comes to the POTUS vote.
Agreed, but there are lots of people living in deep red/blue Congressional districts too. It's a similar problem at a different level of granularity.
Plus, I think one of the best arguments for the current EC is that it provides an incentive for states to be more bipartisan.
You are ruling out a much better system because of a minor easily fixable problem (gerrymandering). There is no reason to eliminate what would be a much better system because politicians are stupid, you just fix the gerrymandering problem and your concerns are alleviated.
The best solution is absolutely the one in which the electoral votes are not a winner take all for the state. I believe it should be based on the House Districts and then the winner of the popular vote gets the two extra Senate votes. That would create a much better vote on the hole and could in theory create a system much closer to the one envisioned by the founders. It would also allow 3rd party candidates to actually have a say in the election. For example, a very popular local politician might actually be able to get some electoral votes, which in a race like this one that is really this close might actually be worth something (thus that politician might be able to get something for the people that voted for him/her).
It would also mean that a Democrat might actually go to the state of Alabama and campaign because said candidate might actually be able to win some electoral votes in places like Montgomery or Birmingham. Similarly, a Republican could get some votes in certain districts in California and thus said candidate would actually benefit from campaigning in the state.