Warm the milk: In a small saucepan, combine the whole milk with the onion half, bay leaf, and cloves (stud the onion with the cloves to hold the bay leaf in place). Heat over medium until steaming with small bubbles around the edges; do not boil. Remove from heat, cover, and let infuse 10–15 minutes. Strain and keep the milk hot.
Make a white roux: In a separate medium saucepan, melt the butter over medium heat. Sprinkle in the flour and whisk constantly until foamy and pale, 2–3 minutes; do not let it brown.
Build the sauce: Whisk in about 0.5 cup of the hot milk until smooth, then gradually add the remaining milk, whisking continuously to avoid lumps. Bring to a gentle simmer.
Simmer to thicken: Cook at a gentle simmer, whisking often, until the sauce is silky and coats the back of a spoon (nappe), 6–10 minutes. The floury taste should be gone.
Season and finish: Whisk in the salt, white pepper, and nutmeg. Taste and adjust seasoning. For an ultra-smooth sauce, strain through a fine mesh sieve. Use right away or keep warm with the surface covered to prevent a skin.