"大衣" usually refers to a specific type of garment, it should be longer and more formal, something you will certainly take off when you stay indoors. No one would call a tracksuit top("运动外套") "大衣", but you can definitely call it "外套" or "外衣". I think a better translation for "大衣" is "overcoat" or "topcoat".
"外套" and "外衣" are pretty much the same, if anything, "外套" might refer to something heavier than "外衣". For example, it might be a bit odd to call a cardigan("开衫") "外套", but it's ok to call it "外衣" as long as you wear it on top. These words are more general, both refer to the outfit you wear on top. From where I come from, the "外" in "外套" and "外衣" means 'on top of', not 'outdoors'. "大衣" is just a kind of "外套"/"外衣", so is blazer("西装外套"), trenchcoat("风衣"), .etc.
And yes, people still use these terms, and they are something we still wear.
Google some images and you will have a better idea of what they are.
Also, If you are shopping online, "外衣" might not be a good keyword for searching since it's too general to put in product names(I haven't seen any shop owner put it in the title), but "外套" is ok, so is "大衣" if you are looking for that kind of garment.