In a 6-quart stockpot, heat the oil over medium heat. Add the sliced onions and saute them, stirring frequently with a wooden spoon, until golden brown, taking care not to let them burn, about 15 minutes. Pour the Port into the pot and stir and scrape to deglaze. Add the broth and salt and pepper to taste. Nestle the thyme and bay leaf inside the hollow of the celery stalk and, using kitchen string, wind around them several times and tie a secure knot to hold them together; add this bouquet garni to the pot. Raise the heat and bring the liquid to a boil. Reduce the heat to maintain a simmer and cook, partially covered, until the onions are very tender and the broth is flavorful, 30 to 40 minutes. While the soup is simmering, arrange the bread slices on a baking sheet. Set the oven to its lowest temperature and bake the bread until the slices feel dry to the touch but haven't yet browned, 20 to 30 minutes. Remove the bread from the baking sheet. Preheat the broiler, setting an oven rack about 8 inches below the heat source. Arrange 6 deep ovenproof serving bowls on the baking sheet. Ladle the soup into them, distributing the onions evenly. Top each bowl with 2 slices of bread and sprinkle with cheese. Carefully place the baking sheet under the broiler and broil until the cheese is melted and nicely browned, 3 to 5 minutes. Carefully remove the baking sheet from the oven, transfer each bowl to an individual serving plate, and serve immediately with more French bread for dunking.