In a large heavy-bottomed sauté pan, melt the butter over medium heat.
Add the bacon and cook, stirring often, until crispy, about 10 minutes.
Using a slotted spoon, transfer the bacon to a paper towel-lined plate, leaving the rendered fat in the pan.
Add the onions and stir to coat with the fat; cover and steam for 10 minutes.
Add ½ teaspoon of salt and stir with a wooden spoon, scraping any brown bits from the bottom of the pan.
Cook, stirring often, until deep golden brown, about 50 minutes. If the onions begin to stick to the bottom of the pan, add a couple tablespoons of water to deglaze.
Remove from the heat, stir in the bacon and adjust the seasoning, to taste.
Keep warm until ready to serve.