Preheat the oven to 350 degrees F.
In a small saucepan, combine 1 1/2 cups of the milk, the sugar, and vanilla. Bring to a simmer and stir until the sugar is dissolved. Remove from the heat. Sprinkle the gelatin over the remaining 1/2 cup cold milk and let dissolve for 2 minutes. Combine the cold milk and gelatin with the hot milk and sugar. Stir to dissolve the gelatin, about 5 minutes. (Heat the milk gently if the gelatin is not dissolving easily.) When the gelatin is dissolved combine the eggs with the warm milk, whisking constantly to avoid scrambling the eggs. Pour the mixture through a fine mesh strainer into a large measuring cup or small pitcher.
Meanwhile, melt the chocolate over a double boiler. When the chocolate is melted gradually combine the milk and egg mixture with the melted chocolate, stirring between each addition to create a smooth chocolate mixture.
Pour the mixture into a buttered 2-quart casserole dish. Sprinkle the top with the almonds. Place the casserole dish in a larger dish or roasting pan. Add hot water to the outer pan until the water comes halfway up the sides of the baking dish. Bake until the sides are firm and the center is jiggles slightly, about 1 hour. Remove from the oven and let cool for at least 30 minutes.
Just before serving, whip the cream to soft peaks in a medium bowl using a whisk or electric hand mixer. Add the sugar and almond liqueur and whip to combine. Spoon the sformato into individual serving bowls and dollop the top with the almond liqueur whip cream.