Remove and discard the green leaves from the cauliflower, then break into even-size florets. Cook in a pan of salted boiling water for 8 to 10 minutes, or until nearly tender. Drain and lay out on a folded tea towel to absorb extra moisture.
Put the milk in a saucepan, add the onion, cloves and bay leaf, and bring to a simmer. Cook for 1 to 2 minutes, then cover and remove from the heat. Set aside to infuse for 10 minutes, then strain the milk through a sieve into a large measuring cup.
In another saucepan, melt the butter over a low heat and stir in the flour, making sure there are no lumps in the mixture. Cook, stirring, for a few minutes, then remove from heat.
Pour in the milk, whisking vigorously until smooth and well combined. Return the pan to a low heat and, using a wooden spoon, stir until the sauce thickens enough to coat the back of the spoon. Leave to cook for 2 to 3 minutes more over the lowest heat. Preheat the oven to 375 degrees.
Add three-quarters of the cheese to the sauce and stir until it melts. Season with nutmeg, cayenne, mustard powder and sea salt. Arrange the cauliflower in a shallow ovenproof dish, pour over the hot sauce, and sprinkle with remaining cheese. Bake for 20 minutes, until the cheese is golden and the sauce is bubbling.
Meanwhile, for the salad, slice the tomatoes, place them in a serving dish, and season. Add the red onion, then drizzle with the olive oil and sprinkle lightly with the red wine vinegar. Serve alongside the cauliflower cheese.