You're basically right. 1) and 2) are the same. However, with 1), it sounds like something you just recently learned about the person. Whereas, with 2), you're confirming something you learned a while ago.
A: I can't eat this hamburger.
B: You're a vegetarian, are you? (B is assuming this as a new piece of information)
A: Ah, I see you made vegetable soup! Thanks.
B: (Well) You're a vegetarian, aren't you? (B knew this ahead of time)
For 3), you would usually use that when you are confirming that someone does eat meat. It's not really "You'd better not be a vegetarian" (which is a little bit rude depending on the context).
A: I only have steak. You're not a vegetarian, are you?
A: My friends told me you like steak. You'd better not be a vegetarian! (or else, you should be mad at your friends - and it sounds a bit rude)
4) is incorrect.