For the colcannon: Put the potatoes in a large saucepan, cover with cold water by 2 inches and add 2 tablespoons salt. Bring to a boil over high heat and cook until the potatoes are fork-tender, about 20 minutes. Drain well, then return to the pan.
While the potatoes are cooking, combine the butter and milk in a small saucepan and bring to a simmer over low heat. Add to the potatoes and mash until smooth, adding more milk as needed. Season well with salt and pepper. Cover and keep warm.
Place a large saute pan over medium heat. Add the bacon and cook, stirring occasionally, until rendered and crisp, about 8 minutes. With a slotted spoon, remove the bacon to a paper towel-lined plate and set aside for the bacon butter. Remove 1 tablespoon of the bacon fat from the pan; reserve this separately for the bacon butter.
Add a tablespoon or two of canola oil to the pan, depending on how much bacon fat remains. Heat until the oil begins to shimmer. Add the garlic, mustard seeds if using, and chile flakes; cook for 1 minute. Increase the heat to high, add the kale and cabbage, in batches if needed, a splash of water and some salt and pepper. Cook until the greens begin to wilt, tossing constantly at first, about 5 minutes. Continue cooking, stirring occasionally, until crisp-tender, about 5 minutes longer. Add the sugar and vinegar; cook for another 2 minutes.
For the bacon butter: While the greens are cooking, combine the butter, reserved bacon fat, mustard and 1/4 teaspoon each salt and pepper in a bowl. Mix until smooth. Fold in the reserved bacon and the green onions. (See Cook's Note.)
Finish the colcannon: Combine the mashed potatoes and the sauteed greens in a bowl. Transfer to a casserole dish and top with a few dollops of bacon butter. Place in a warm oven (200 degrees F) until the butter begins to melt, about 5 minutes.
The bacon butter can be made up to 2 days in advance. Store tightly covered in the refrigerator and allow 30 minutes to come to room temperature before using.)