1. Cook bacon in a medium skillet over medium-low heat, stirring occasionally, for 8 to 10 minutes or until crisp. Remove bacon, drain on paper towels, and reserve drippings in the skillet.
2. Add butter to the drippings and stir until the butter melts. Increase the heat to medium. Add the onions and saute for 10 to 12 minutes or until tender. Add the shallots, vinegar, sugar, kosher salt, and cook while stirring constantly for 1 to 2 minutes or until the sugar dissolves.
3. Reduce the heat to low and cook, stirring occasionally, 20 to 25 minutes or until onions are very tender and brown. Remove from heat. Cool completely and refrigerate in an airtight container up to three days.