Cook bacon until done, but not crispy. Set aside on paper towels to absorb grease and pat dry. Cut into bite sized pieces when cool.
Wash potatoes. Bring a large saucepan of water to a boil. Add salt to the boiling water, then add the potatoes. Cook for 10-15 minutes in boiling water (the potatoes will finish cooking in the oven). Set aside and allow to cool. Once you're able to work with the half-cooked potatoes, slice them into 1/2" pieces.
In saucepan, melt butter. Saute the onion slices until just tender; remove from pan and set aside. Making sure you still have enough butter in your pan, stir in flour and milk, whisking until smooth. Cook over low heat, stirring/whisking constantly for 1 minute. Add cheese and continue to stir until cheese melts. Stir in 3/4 teaspoon salt and 1/8 teaspoon pepper. Mix in bacon.
In a buttered 9x13 quart casserole, layer potatoes, onion, and cheese mixture. Continue to add layers until about one inch from the top, finishing off the top layer with the cheese mixture.
Bake in a preheated 350°F oven, covered, for 45 minutes. Take the cover off of the casserole dish, sprinkle with green onions, and bake for another 5 minutes uncovered. Sprinkle lightly with garlic salt before serving, if desired.