Prepare the onions: In a large pot, melt 2 Tbsp. butter and 2 Tbsp. extra-virgin olive oil over medium heat. Once melted, add 3 large yellow onions (thinly sliced) and a pinch of kosher salt. Cook the onions slowly, stirring occasionally, until they are golden brown and caramelized, which will take about 40 minutes. This step is crucial for achieving the deep flavor characteristic of French onion soup.
Add garlic and tamari: When the onions reach a caramelized state, stir in 4 minced garlic cloves and 2 tsp. lower sodium tamari. Allow this to cook for another 2 minutes, just until the garlic becomes fragrant.
Combine ingredients: Add 1 cup petite lentils, 2 quarts low sodium chicken broth, 6 to 8 sprigs fresh thyme (or 1 tsp. dried thyme), 1 bay leaf, and cracked black pepper to taste into the pot. Stir well to combine before bringing the mixture to a boil.
Simmer the soup: Once boiling, reduce the heat and cover the pot with a lid. Allow the soup to simmer for about 30 minutes, or until the lentils are tender. Be sure to check occasionally to prevent sticking. After simmering, discard the bay leaf and thyme sprigs, then season with additional salt and pepper to taste.
Prepare the cheesy topping: While the soup simmers, you can prepare the French bread. Place 8 to 12 slices of French bread on a baking sheet, and when the soup is nearly done, broil the bread in the oven until lightly toasted. Keep a close eye on it to avoid burning.
Broil the soup: To finish, ladle the soup into oven-safe bowls, place the toasted bread on top, and sprinkle 1 1/2 cups grated Gruyère cheese over each bowl. Broil the bowls in the oven for 2-4 minutes, or until the cheese is melted and bubbly.
As you prepare this dish, pay attention to visual and textural cues such as the color of the onions and the consistency of the broth to help ensure the best results.