Melt 2 tablespoons butter with the olive oil in a medium-sized pot over medium heat. Add the onions and stir regularly until they are caramel in color and sweet.
Add the beef broth, white wine (if using) and thyme. Season with salt and pepper, and simmer for 30 minutes.
Remove the onion soup from the heat. Strain out the caramelized onions and reserve the liquid to use for dipping.
Cut the crusts off of each slice of bread and discard the crusts. Flatten each piece of bread with a rolling pin.
Layer 1 slice (2 half pieces) of the provolone cheese on top of the bread. Line up the straight edge of each half-circle piece with the edge of the bread to cover the most area. Then, layer the swiss cheese on top.
Scoop anywhere from a half to full tablespoon of the caramelized onions on top of the cheese.
Tightly roll up the bread and fillings. Use a knife to cut any cheese that is pushed out at the seam. Rest the rolled sticks seam-side down.
Refrigerate the leftover onions in a tupperware container. You can use them on sandwiches, in more soup sticks, or in french onion dip.
Heat 2 tablespoons butter in a medium sized pan over medium heat. Once the butter has melted, add the sticks, seam-side down. Let the bottoms become golden brown and turn every few minutes until the entire sticks are browned and the cheese is melted. Add more butter if necessary as you cook them, as they will burn if the pan becomes too dry.
Serve the sticks warm with a side of the broth or french onion dip!