Bring a large-pot of lightly-salted water to a boil. Blanch the spinach in 2-3 batches (based on how big the pot), only till tender for 30-40minutes. Strain the spinach-leaves from the water & dip them in a bowl of ice water to cool.
Drain well & squeeze or press excess water from the spinach at a fine mesh sieve or a clean kitchen towel. (For the creamiest-spinach do not skip this step!) If desired, roughly chop the spinach.
In a large-pot or skillet, melt-butter till foaming subsides. Add onions using 1/2 tsp kosher-salt and 1/2 tsp pepper. Saute till onions start to soften for 4-5minutes. Add garlic and cook till aromatic for a few minute.
Stir in flour & cook, stirring for a few minute. While continuing to stir, pour half and half to the kettle in a continuous flow. Insert an extra 1/2 tsp kosher-salt, 1/8 tsp nutmeg and cayenne pepper (if using). Bring to a boil, reduce heat and simmer till sauce is thickened and coats the back of a spoon for 3-4minutes.
Add spinach to the pot & stir well till well blended. It requires a little stirring to receive all the spinach leaves evenly coated with the sauce. If the sauce is too thick, then add a little additional milk or half and half till the desired consistency is attained.
Season to taste with pepper and salt then serve.