Heat 1 tablespoon olive oil in a large skillet over medium heat. Add sliced onions and cook for 12-15 minutes, stirring occasionally, until caramelized and golden brown. Remove from pan and set aside.
Divide the ground beef into 4 equal portions and shape into thin, oval patties slightly larger than your bread slices (they'll shrink while cooking). Season both sides with salt, pepper, and Worcestershire sauce.
In the same skillet, heat remaining olive oil over medium-high heat. Cook patties for 3-4 minutes per side until nicely browned and cooked through. Remove from heat and set aside.
Wipe the skillet clean and reduce heat to medium. Butter one side of each bread slice generously.
Place 4 bread slices in the skillet, buttered side down. Top each with 1 slice of Swiss cheese, a beef patty, caramelized onions, another slice of cheese, and the remaining bread slice (buttered side up).
Cook for 3-4 minutes until the bottom is golden and crispy, then carefully flip. Cook another 3-4 minutes until the second side is golden and the cheese is completely melted.
Remove from heat, slice diagonally, and serve immediately while the cheese is still gooey and delicious!