Combine the 'Sauce' ingredients in a small pot then place to one side.
Melt 1 tbsp butter in a large heavy-based pan over medium heat. Add the onions and fry until they start to soften and turn golden, around 8-10mins. Lower heat and season the onions with a pinch of salt & pepper. Continue frying for another 15 mins, or until completely soft, deep golden and sticky/sweet. If they start to dry out/catch on the pan, just add water 1 tbsp at a time. Remove the onions from the pan and raise the heat to medium-high.
Spread one side of each slice of bread with butter. Place them butter-side-down in the pan and toast until crisp & golden. Remove and place them toast-side-up and turn off the heat. Place Swiss on half of them and American on the other half.
Divide the beef in two and flatten them each into the shape of the bread, making sure each patty is larger than the slice (they'll shrink a fair bit in the pan). Don't overwork the meat, just enough to mould it to shape. Generously season the top side with salt & pepper.
Melt 1 tbsp butter in the pan over medium-high heat then add the patties seasoned-side-down. Season the top, then leave to fry for a couple of mins, or until they build up a crust on the bottom. Flip them over and cook until you build a crust on the second side and they're just about cooked through. Remove them from the pan and turn off the heat.
Spread all 4 slices with sauce, then stack two of them with the patty and onions. Add the second slice on top to create two sandwiches (both with half American and half Swiss cheese).
Add the sandwiches to the pan and toast both sides over medium heat until deep golden & crisp on the outside, with the cheese starting to melt in the centre. You can use the leftover burger fat to do this, or clean out the pan and spread both sides of the sandwiches with butter.
Remove, slice each sandwich in half then tuck in and enjoy!