I'd recommend more of a Two-handed weapon Fighter or Barbarian in lieu of using Two-Weapon Fighting.
There are multiple reasons to do so, such as the Accuracy penalties you get from Two-weapon fighting lowering your overall damage, being unable to utilize Power attack fully because of said accuracy penalty, and the fact that your gold is being spent on two weapons instead of just using all of your gold on a single weapon.
Also, Barbarian gets a D12 hit die against a Fighters D10, gets a full Base attack bonus progression, and their rage ability gives them bonuses to blanket will saves instead of just will saves against fear like the fighter, Along with a Substantial bonus to Strength and constitution when raging. ( Not to mention you probably aren't going to use all your rages in a day later in your game )
As far as your stats are concerned, for your TWF Fighter, You have the right of it. Strength, Dex, and Con are your most important stats, wisdom being secondary for will saves. Strength will contribute to your damage, Dex will boost your armor class, Con will increase your HP quite a bit.
You'll obviously want the Two-Weapon Fighting feat, So that's one of your feats. For your other two You're level four, so you could take Improved Initiative to improve your chances of getting the first action with your dexterity, and Jaguar Pounce so that if you do get the first action you have a pretty good chance of getting the jump on someone and using the high crit ranges on your light weapons to get a crit off when the fight starts.
I believe using a non-light weapon in your main hand, and a light weapon like a dagger or shortsword in your off-hand is still considered standard with TWF, But since you'd be using two weapons you'd want your weapons to threaten more, so a mainhand Scimitar to vary up the types of damage you deal ( Slashing v. Piercing ) while giving you a larger crit range on your main hand would be the best.
So I've got based on the stats specified: Str: 18, Dex: 16, Con:21, Wiz: 12, Int:10, Cha:10
Feats: Two-Weapon Fighting, Double Slice, Two-Weapon defense, Weapon Focus: Scimitar, Weapon Specialization: Scimitar, Jaguar Pounce, Improved Initiative
That puts you with 4d10+20+4HP, With a 1d6+6 Main hand. If your opponent is flat-footed your crit range is 15-20/x2, When they aren't its 18-20/x2. Your offhand is 1d6+4.
This should deal enough damage in the first round to get an enemy to focus on you instead of on someone else in your party should you roll a crit. Later on when you hit level eight you can retrain your Jaugar Pounce Feat into Improved Critical.
Some other feats you may want to look into as you level are Furious Focus, Shield of Swings, and Pushing Assault, These work well with Critical builds as if you push a target more than 5ft away, they cant use a full-attack action during that round if they don't have pounce.
Their characters are fine.
Optimization in 5e has very little to do with individual characters, and everything to do with the party as a whole.
Unless the players are highly organized, builds with high stats and dump stats would actually be a liability. I'll explain this by comparing it to Pathfinder:
In Pathfinder, each character takes on a specific role in which their competency, assuming the character is optimized, grows exponentially. For example, a wizard may invest a level or two into multiclassing rogue, and it's better than nothing, but they won't hold a candle to the "real thing." At some point DCs for skill checks and saving throws get so high that only a specialized character has a real chance.
In D&D 5e, a character specializes in a number of things, but this generally only means that they are a step or two above the rest. For example, say a wizard takes the criminal/spy background; for 99% of your adventuring career, that wizard can be relied on to handle duties that are traditional to rogues, though they will likely approach said duties in a different way. No multiclassing required.
This is because of the bounded accuracy thing. You always have a chance. Having a decent wisdom score on a barbarian isn't a waste. Hello, mind control!
Because of this, it's less important in 5e that you specialize. Instead you optimize by having your party, as a whole, make sure that all bases are covered. And redundancy is more likely to save your bacon than a slightly higher bonus to your already-high rolls.
5e adventure design assumes players to be sub-optimal
To some extent, whether individually or as a cohesive unit. So you don't really need to ease up on anything. In early stages you might want to give them some light warnings when they're about to enter a deadly encounter. A wake-up call so they realize, "Oh we should play it smart" is more than enough for most parties.
As far as what I mean by "balance": it seems that at levels 1-2 it's
hard to keep everyone conscious the whole time since they have so few
hit points; better to anticipate a KO or two and bring your healing.
This is not a consequence of the characters being built for breadth. It's a simple matter of how fast and deadly combat is in 5e. Perfectly normal for any party.
Some DMs will start tuning down encounters once players start dropping to zero health. Don't do this! They survived, they learned, they will be excited, they will be tuning their party up.
That's when you start targeting players' weaknesses. At which point, it's a good thing they went for breadth.
Total party wipeouts are not the end in Curse of Strahd.
Check out the Adventure's League Dungeon Master's Guide v4 that accompanies Curse of Strahd. Look under Jeny Greenteeth's spellcasting services, and the block on "Death in Ravenloft." This is a canon method for continuing the campaign in the event of everybody dying horrible deaths.
So by all means throw that coven Night Hags at a team of level 5s! They might surprise you and curbstomp the things. Or they might all die and come back with some Dark Gifts.
Challenge Rating is accurate but not precise.
You can read about it in the DMG. CR is based on Proficiency bonus, HP, AC, attack bonus, damage per round, and DC on their abilities. It is not adjusted for the special abilities they have, and how those can play with different parties.
For example, I've run Death House a few times. The Shambling Mound is CR 5. It's supposed to be tough, but parties have had little trouble with it. On the other hand, each party was seriously thinking they were going to die when I unleashed that pack of five CR 1/2 shadows on them.
The CR does not account for how a devious DM may capitalize on special abilities, or how a given party may completely shut an enemy down.
Best Answer
This doesn't actually affect the balance of the game that much, certainly not enough to require that enemy monsters be modified to match.
What this does affect, however, is how you distribute your stats. If you can have a 16 in your main attack stat, you will, almost guaranteed, no matter your class. There's just no really good reason not to do so, if it will give you an advantage. In many cases, classes also have a very important secondary ability score, or at the very least constitution, which they may also want to raise up to 16.
This leaves very few points afterwards to spend on other abilities, leaving character that are extremely good at one or two things, and terrible at everything else. While this might be worth it mechanically, it can negatively affect the game by making each player very specialized in what they do compared to normally.
By restricting ability scores to 15, you encourage a lot more diversity in how your players build their characters. First, as you noted, +2 bonuses to a stat aren't nearly as valuable, since you only need +1 to go from 15 to 16, so +2 just means you can save a few points by starting at 14 instead, and using the 15 for the secondary stat that you have +1 in.
This relieves the pressure to min-max your character, and often leaves you with a few extra point to put into less critical stats, where you're more free to customize your character by, for example, choosing whether your Fighter is an intelligent fighter that uses tactics and knowledge to get and edge, or a wise fighter with an iron will and a natural empathy, or a charismatic fighter that inspires those who follow him.