In a large pot, heat the butter over medium heat until it is melted and begins to brown. Add the onions and cook over medium heat, stirring occasionally, until they are soft and browned (about 20 minutes). Onion soup, unsurprisingly, is all about the onions. Make damn sure the onions are a nice, dark, even brown color.
Increase the heat to medium high and stir in the port wine and the vinegar, scraping all that brown goodness from the bottom of the pot into the liquid. Add the vegetable stock. Add the bouquet garni, and bring to a boil.
Reduce to a simmer, season with salt and pepper, and cook for 45 minutes to an hour, skimming any foam off the top with a ladle. Remove the bouquet garni.
For the croutons and cheese:
When the soup is finished cooking, ladle it into the individual crocks. Float two croutons side by side on top of each. Spread a generous, even heaping amount of cheese over the top of the soup. You want some extra to hang over the edges as the crispy, near-burnt stuff that sticks to the outer sides of the crocks is often the best part, once it comes out from under the heat.
Place each crock under a preheated, rip-roaring broiler until the cheese melts, bubbles, browns, and even scorches slightly in isolated spots. The finished cheese should be a panorama of molten brown hues ranging from golden brown to dark brown to a few black spots where the cheese blistered and burned. Serve immediately—and carefully. You don’t know pain until you’ve spilled one of these things.
If your broiler is too small or too weak to pull this off, you can try it in a preheated 425°F/220°C oven until the cheese is melted. A nice optional move: Once the mound of grated cheese starts to flatten out in the oven, remove each crock and, with a propane torch, blast the cheese until you get the colors you want.