Place a heavy-bottomed saucepan on a heat diffuser over medium heat.
Add butter. When melted, add onions and cook, stirring occasionally until translucent but not browned, about 3 minutes. Add flour and continue to cook, stirring continuously, making sure the flour doesn't brown, for another 2 minutes.
Add milk and half-and-half, and, whisking often, bring to a simmer, about 15 minutes.
Add bay leaf, cloves, and peppercorns. Move pan to one side of the diffuser, and simmer, whisking often so the mixture doesn't stick, for 30 minutes. Remove from heat.
Taste, add nutmeg, salt, and pepper as needed.
Strain sauce through a fine mesh strainer. Add cheese and whisk until smooth.
Use immediately, or place a piece of plastic wrap on the surface and refrigerate until needed.