Locks are anti-fun, sure, but are do indeed bring low numbers to the table and as such aren't the focal point of all the hate. It's direct removal that operates outside of game of numbers that feels like a cheat. VVM isn't a super cost-efficient card, but he comes as a part of package offer with YenInvo and at least four instances of poison, usually more than that. Worse yet, they have dedicated engines benefitting from this, so numbers aren't too shabby either.
It's their combined effect that makes your opponents ponder the meaning of life somberly, so nerfing individual cards won't really get us anywhere. I, for one, think that poison mechanic was a horrible mistake in the first place, and that Veil is a poor solution that doesn't exactly impede NG, because they have a lot of other ways to nuke their target, but definitely hurt bleeding cards and locks of other factions that weren't that great in the first place.
( Vilge is an especially mean card. while he can backfire occasionally, most of the time it's an unconditional kill+another bricked card for your opponent, and a 5 points body. That's a bit too much for a single card, innit?)
The thing is, for as long as there're so many options that bypass direct numerical conditions/restrictions, such as poison, the game will be impossible to balance, because at its core, the game revolves around adding and subtracting numbers, and any digressions from this core principle are bound to cause a lot of trouble.
I am not saying those shouldn't exist at all, mind you. They just should either have a decently complicated condition that actually makes them less safe (conditions like "having a status" are pretty laughable), or high cost.
Geralt:Igni/professional is a good example of a card that is ultimately healthy for the game. Expensive, strict conditions that are actually dictated by numbers also can win you a game if you do it right.
Still...NG Ball is just the most infamous instance of a much worse overarching problem the game has: prevalence of instant removal over point-generation. This is the real reason why cards that do things like "deal 2 damage or 4 if it's boosted" see little play - why would you want to trade measely points if you can just shut down a potentially troublesome engine right away?
MM has great options for going wide, sure, but is it really okay to be shoehorned into particular playstyles because the alternatives are just plain worse?
This dynamic is really unhealthy and can only result in more dead cards and playstyles. I am well aware that overabundance of removal is meant to keep engines in check, but it just makes many of them borderline unplayable and that's it... except for the ones that need to be kept in check the most. Those usually persevere.
so, again, to even start balancing things, we would first need to take down both removal AND engines a few good notches down, so that their interaction is no longer binary and small damage pings mean something again.
That in turn means revisiting and probably completely overhauling mechanics like duel, poison, shield, certain tutors, many instakill cards and so much more. Needless to say, this isn't a very probable thing to happen.