Place bread cubes in 13x9-inch baking dish. Melt 3 tablespoons of the butter. Stir in sage; drizzle mixture over bread cubes. Sprinkle with cheeses. Set aside.
Melt remaining 3 tablespoons butter in medium saucepan on medium heat. Add onion; cook and stir 3 minutes or until tender. Sprinkle with flour; cook and stir 2 minutes or until lightly browned. Add stock, garlic powder, pepper and nutmeg; whisk until blended. Bring to boil. Reduce heat to medium-low; simmer 5 minutes or until thickened, stirring occasionally. Remove from heat.
Gradually whisk in half-and-half until well blended. Whisking constantly, add beaten eggs. Gradually pour into baking dish. Top with spinach. Sprinkle evenly with crumbled bacon and additional Parmesan cheese, if desired. Cover with plastic wrap. Refrigerate at least 1 hour or overnight. (If refrigerated overnight, let casserole stand at room temperature 1 hour before baking.)
Preheat oven to 350°F. Bake 40 to 45 minutes or until center of casserole is set and top is lightly browned. Let stand 10 minutes before serving.