Heat butter and oil in a deep pan over medium heat. Add bratwursts and brown on all sides (about 5 minutes). Remove and set aside.
In the same pan, add sliced onions and cook until soft and golden (about 10 minutes). Stir in garlic and cook for another minute.
Pour in the beer, broth, mustard, and caraway seeds. Stir and bring to a simmer.
Return bratwursts to the pan, cover, and let simmer on low heat for 25-30 minutes, turning occasionally.
Boil potatoes in salted water until fork-tender (about 15 minutes).
Drain and mash with butter and warm milk. Season with salt and pepper to taste.
In a pan over medium-low heat, melt butter. Add sliced onions and a pinch of salt.
Cook slowly, stirring occasionally, for 15-20 minutes until deep golden brown.
Stir in brown sugar and balsamic vinegar (if using). Cook for another 2 minutes.
Assemble and serve! Spoon mashed potatoes onto plates. Top with bratwurst and beer-braised onions. Garnish with caramelized onions and drizzle some of the beer sauce over everything.