Heat oil in a large nonstick skillet over medium heat; add onions and 1/2 teaspoon salt. Cook and stir for 15 minutes or until moisture has evaporated and onions are completely wilted. Reduce heat to medium-low. Cook and stir for 30-40 minutes or until onions are caramelized. (If necessary, add water, 1 tablespoon at a time, if onions begin to stick to the pan.).
Meanwhile, place potatoes and garlic in a large saucepan; cover with water. Bring to a boil. Reduce heat; cover and cook for 18-22 minutes or until tender.
Drain potatoes; place in a large bowl and mash. Add the sour cream, milk, pepper and remaining salt; mash until blended. Stir in caramelized onions. Transfer to a serving bowl. Drizzle with butter; sprinkle with cheese and bacon.