Heat the vegan butter and olive oil on medium high in a large soup pot.
Once the butter has melted, reduce the heat to medium and add the onions, shallots, garlic, bay leaves and thyme to the pot. Stir to combine everything.
Begin to sauté for 2-3 minutes, tossing everything together. Then reduce heat to medium low and press all of the onions into the pot as evenly as possible. Season with a pinch of salt and pepper.
Let the onions sauté without touching them for about 5 minutes, then stir and press back down into the pot. Keep doing this. Once the onions have been sautéing for about 20 minutes, add the agave if using. Stir to combine.
Continue stirring every 5-10 minutes and pressing the onions back into the pot until the onions are very brown and almost melt in you mouth. This will take about 40-45 minutes.
When the onions are almost done, preheat the oven to 400 degrees(F), if making the mushrooms.
Put the mushrooms on a sheet pan, drizzle with the olive oil, add the thyme to the sheet pan and sprinkle with a few pinches of salt and pepper. Toss to coat the mushrooms and roast them for 15 minutes. Toss, then roast for another 10-12 minutes or until they are nice and brown. Remove from the oven when done. Set aside.
Once the onions are caramelized, add the wine to the pot and stir to combine. Simmer until the wine has been mostly absorbed into the onions. About 3-4 minutes.
Now, remove the bay leaves and sprigs of thyme. Discard them.
Add the flour to the pot and stir to combine.
Now add the broth and a few pinches of salt and pepper. Stir to combine everything, making sure the flour is absorbed.
Simmer the soup on low for about 10-15 minutes.
Cook the noodles according to package directions.
Taste the soup and adjust the seasonings. Add the cooked noodles to the soup.
Serve the soup hot topped with the roasted mushrooms.