Preheat oven to 375 degrees. Spray the 9x13 baking dish with nonstick cooking spray. Set aside.
Bring a large pot of water to boil. Add a tablespoon of salt. Add broccoli florets and cook for 3 minutes. Remove with a slotted spoon to a bowl filled with ice water. Remove the florets after 30 seconds and strain in a colander.
Heat butter in a large pot over medium heat until melted. Add garlic and cook 1-2 minutes, stirring constantly. Add the flour and cook for 1-2 minutes, whisking constantly. Slowly add the half and half and then the salt and pepper. Bring to a simmer and cook, stirring often until mixture begins to thicken, about 7-8 minutes.
In a medium bowl, stir together the two cheeses. Remove the pot from the heat. Add 1 1/4 cups of the cheeses to the mixture in the pot. Stir until the cheese is melted. Add the broccoli, eggs and one cup of the crispy onions to the pot and stir until well combined. Pour mixture into the prepared dish. Sprinkle with remaining 3/4 cup cheese and 1/2 cup crispy onions. Bake for 30 minutes or until set. Remove from oven and serve.