Honestly, only time will tell.
Give it 2 days d-rest, taste a sample and see if the flavor's still there. If it's gone, then you're probably mistaking one for the other. If not, then we can dig deeper into your process to see what else could be wrong.
The thing that makes it tough is that the off-flavor you're describing appears to be both.
DMS (a compound that typically boils off when you remove the lid for your whole boil) tends to taste, from all reports, like cooked corn. I can honestly say I haven't yet tasted this, so I can't speak to it for sure.
Diacetyl tends to taste buttery, and definitely can impart an oily mouthfeel. I just tasted this for my first time a few weeks ago, and I don't think I can recall anything vegetal about it, to be perfectly honest.
So when you said that you boiled with the lid on for your first two batches, the immediate assumption is DMS. And you described a vegetal flavor - again, DMS. But you also noted buttery flavors, which typically indicate diacetyl. Diacetyl can show up in a lot of different beers, but is most commonly noted in lagers. Check out
this article for some of the science behind it, as well as some tips for reducing it. Just give it a look see and see if anything in your process appears to go against it - that might be a culprit for diacetyl.
EDIT: Actually, peeking just through the start of the linked article, there's a strong suggestion that underpitching can lead to more diacetyl, as diacetyl is a by-product of the lag phase. Not sure what your lag times look like, but I know my bock had a lag time less than 7 hours and still DEFINITELY needed a d-rest. You might benefit in this regard from starters, but it's definitely not a fool proof 100% fix...