Melt 1 tablespoon butter in a cast-iron skillet over medium-low heat, add onions and 1/4 teaspoon salt and cook for 35 to 40 minutes, stirring often, until deep brown.
Shape the beef into two thin oval patties slightly larger than the bread and season with remaining salt and pepper.
Raise the skillet to medium-high and cook the patties for 2 to 3 minutes per side until browned and 160°F inside.
Layer Swiss, patty, onions and American between rye slices and spread remaining butter on the outer bread faces.
Griddle over medium-low heat for 3 to 4 minutes per side until the bread is crisp and both cheeses melt.