In a large saucepan over medium-high heat, melt butter and add oil. When it gets hot, add onions, garlic and salt; sauté for 2 minutes.
Add freshly ground black pepper, stir, reduce the heat to medium and cover; cook for 8 minutes, stirring every couple minutes.
Uncover, reduce the heat to medium-low and continue cooking for another 10 minutes, stirring often.
Pour in Marsala wine (*see footnote) and continue stirring; cook until the wine has almost evaporated.
Pour in beef broth and vegetable broth; bring to a simmer.
Add thyme, garlic salt and bay leaf; cook for 15 minutes. When ready to serve, remove thyme and bay leaf.
Preheat the broiler and move the rack to the second row from the top.
Place the 4 bread slices on a baking sheet and transfer to the oven; toast until golden brown.
Remove from the heat, flip over and return to the oven.
When almost done, sprinkle Asiago cheese on two slices only. Return to the oven and cook until the cheese is melted.
Place each toast with cheese at the bottom of the soup bowls. Ladle the beef broth mixture over and then place toasted sliced bread on top.
Add two slices of Swiss cheese per bowl, sprinkle on the remaining Asiago cheese and transfer the bowls under the broiler. Cook until the cheese is melted and browned, about 3-4 minutes.