Preheat your oven to 300°F (150°C). Grease a 9x5-inch loaf pan and line it with parchment paper, leaving a little overhang on the long sides so you can lift the loaf out cleanly later. This batter fills a standard loaf pan almost to the top, so a true 9x5-inch pan matters here, a smaller tin will overflow in the oven.
In a saucepan over medium heat, melt the treacle and butter together, stirring often so it doesn't catch on the bottom. Don't let it come to a boil. Once it's smooth, take it off the heat and stir in the milk to cool the mixture down. Let it sit for 10 minutes before moving on.
While the treacle mixture cools, sift the flour, sugar, baking soda, baking powder, salt, and all the spices into a large bowl. Whisk everything together well so the leaveners and spices are evenly distributed.
Once the treacle mixture has cooled for the full 10 minutes, add the eggs and whisk until fully combined. If the mixture still feels warm to the touch, give it another few minutes before adding the eggs.
Pour the treacle mixture into the bowl of dry ingredients and whisk until smooth, with no streaks of flour or dry pockets left. The batter will be very thin and runny, much thinner than a typical cake batter. That's expected.
Pour the batter into your prepared pan. If you want a neat, even split down the center, run an oiled knife or a thin line of softened butter down the middle of the batter before it goes in the oven.
Bake for 1 hour and 20 minutes. Check doneness with a skewer inserted all the way down to the bottom of the pan. The skewer should come out clean with no raw batter clinging to it. If the top browns too quickly, tent it loosely with foil for the last 15-20 minutes.
Let the loaf cool in the pan first, then use the parchment overhang to lift it out onto a wire rack to finish cooling completely before slicing.
Serve in thick slices, with plenty of butter if you're feeling indulgent.