Heat 1 tablespoon in a large non-stick of cast iron skillet over medium-low heat until melted. Add onions, season with salt and pepper and cook, stirring frequently, until deeply caramelized and rich brown, about 45 minutes (If onions threaten to burn, add 1 tablespoon of water). Transfer onions to a bowl and wipe out skillet.
Return skillet to medium heat and melt 1 tablespoon butter. Add bread slices and cook, swirling bread around pan, until pale golden brown, about 2 minutes. Transfer to a cutting board, cooked-side-up. Divide cheese evenly between each slice. Spread onions evenly between two slices. Close sandwiches with onions and cheese inside.
Melt 1 more tablespoon butter in skillet and add both sandwiches. Cook, swirling pan frequently, until deep golden brown on first side, about 3 minutes. Add remaining tablespoon butter, flip sandwiches, and continue cooking until deep golden brown and cheese is melted, about 3 minutes longer. Serve immediately.
Recipe adapted from www.seriouseats.com