Okracoke is much better than Tangier. Tangier is more of a "lunch stop", and Okracoke is more of a "stay the weekend" place.
The thing to be aware of for Tangier, aside from a couple restaurants, there is nothing there. You can walk a lap around the entire island in like an hour and you will have seen everything. I found Tangier to be fairly depressing, as there are a lot of old, failing structures that the residents can't afford to fix.