Cook the lentils. In a small pot, cover the rinsed lentils with water by about 2 inches. Bring to a boil, then reduce to a simmer.
Cook for 15–20 minutes until just tender but not mushy. Drain and set aside.
Sauté the base veggies. In a large skillet or Dutch oven, heat olive oil over medium heat. Add onion, carrots, and celery with a pinch of salt.
Cook 6–8 minutes, stirring occasionally, until soft and lightly golden.
Add garlic and tomato paste. Stir in garlic for 30 seconds, then add tomato paste. Cook 2–3 minutes until the paste darkens and smells sweet. This step builds big flavor.
Deglaze with wine. Pour in the red wine and scrape up any browned bits.
Let it bubble for 1–2 minutes until slightly reduced. If skipping wine, add a splash of broth and 1 extra teaspoon balsamic later.
Build the sauce. Add crushed tomatoes, 1 cup vegetable broth, oregano, basil, bay leaf, soy sauce, and red pepper flakes if using. Stir in the cooked lentils.
Simmer low and slow. Reduce heat to low and simmer uncovered for 20–25 minutes, stirring now and then.
Add a splash of broth if it gets too thick. You want a hearty, scoopable sauce.
Cook the pasta. Meanwhile, bring a large pot of salted water to a boil. Cook penne until al dente.
Reserve 1/2 cup pasta water, then drain.
Finish the sauce. Remove the bay leaf. Stir in balsamic vinegar. Taste and adjust salt and pepper.
If you want extra silkiness, add a splash of pasta water.
Toss and serve. Combine the penne with as much sauce as you like. Top with fresh herbs and Parmesan or a vegan alternative. Serve hot.