Bring a large pot of water to a boil over high heat. Generously salt the water, then stir in the egg noodles and cook to al dente according to the package instructions. Scoop out 1 cup of the pasta cooking water and reserve, then drain the noodles.
While the pasta is cooking, add the diced bacon to the largest nonstick skillet you have. Set over medium-high heat and cook, stirring occasionally, until the bacon starts to crisp, 6 to 8 minutes. Transfer to a plate with a slotted spoon.
In the same skillet with the bacon fat, add 2 tablespoons of butter. Reduce the heat to medium. Add the onions and cook, stirring occasionally, until softened, about 3 minutes. Add the garlic and cook until fragrant, about 1 minute.
Add half of the cabbage and cook, stirring occasionally, until it starts to wilt, about 3 minutes. Add the remaining cabbage and 1 teaspoon salt. Cook, stirring occasionally, until the cabbage is softened and starts to brown, 15 to 20 minutes. Stir in the caraway, if using.
Add the cooked noodles, ¾ cup of the reserved pasta cooking water, the reserved bacon, and the remaining 2 tablespoons of butter to the skillet. Stir until everything is coated, adding more pasta cooking water as needed. Season to taste with salt and pepper and serve immediately.
