Preheat oven to 400°F (200°C). Rinse brown lentils well. In a saucepan, combine lentils, water, and bouillon cubes.
Bring to a boil, then reduce the heat to low, cover, and simmer about 20 minutes until lentils are tender. If needed, drain slightly but keep a little moisture.
Heat olive oil in a large pan over medium heat. Add onion and cook 3–4 minutes until softened. Add garlic and cook 1 minute until fragrant.
Now, add carrots, celery, and mushrooms, and cook for 5–7 minutes until the vegetables soften and the mushrooms release moisture.
Add cooked lentils to the vegetable mixture. Stir in butter, tomato paste, Worcestershire sauce, soy sauce (or coconut aminos), and red wine vinegar if using. Simmer 3–5 minutes to combine flavors. Taste and adjust salt and pepper as needed.
Add potatoes to a large pot of salted water. Bring to a boil, then cook for 15–20 minutes until fork-tender. Drain very well. Mash with butter, milk (adding gradually), and salt until fluffy and smooth.
Spoon lentil mixture into a deep baking dish. Spread mashed potatoes evenly on top. Bake for 20–25 minutes until potatoes are lightly golden. Remove from oven, sprinkle with parsley, and let rest 5–10 minutes before serving.