Heat oven to 350°F. Grease a 9x13-inch baking dish.
Boil noodles in salted water until just shy of al dente. Drain and set aside.
Warm oil in a large skillet over medium-high heat. Brown the ground beef, breaking it up, 6–8 minutes. Drain excess fat.
Add butter and onion to the skillet. Cook until softened, 4–5 minutes. Stir in garlic for 30 seconds.
Fold in sauerkraut, caraway, pepper, and salt. Cook 3 minutes to warm through and meld flavors.
Whisk soup, sour cream, and milk in a bowl until smooth.
Combine noodles with the beef-sauerkraut mixture. Pour in the creamy sauce and toss to coat evenly.
Spread into the baking dish. Top with Swiss cheese.
Bake until bubbling and lightly browned, 25–30 minutes. Rest 10 minutes, then garnish with parsley.