Heat the olive oil and 1 tablespoon butter in a large nonstick skillet over medium heat. Add the onion and 1/2 teaspoon salt and cook, stirring occasionally, until very soft and golden, about 25 minutes. Transfer to a small bowl.
Mix the ground meat with the ketchup, Worcestershire, onion powder, 1 teaspoon salt and a few grinds of pepper. Form the meat into 4 oblong patties in the approximate size and shape of the bread (they should be a little less than 1/2-inch-thick).
Add 1 tablespoon butter to the skillet and heat it over medium-high heat until the foam subsides. Add the patties and cook, turning once, until cooked to medium doneness, about 2 1/2 minutes per side. Add salt and pepper, if desired. Transfer to a plate.
Wipe the skillet clean. Butter one side of half of the bread slices, then place them butter-side down in the skillet. Add a slice of cheese on top of each slice of bread, then add the patties and onions. Lay one more slice of cheese on top of the onions, then add the top slices of bread. Butter the top of the bread. Flip the sandwiches and cook until the bread is golden brown and the cheese is melted, about 3 minutes per side. Transfer to a cutting board and cover loosely with foil. Cook the remaining sandwiches with the remaining butter in the same manner.
Cut the patty melts in half and serve immediately.