Place the chopped chocolate in a large, heatproof bowl and place a fine mesh sieve over the top; set aside.
Whisk together the milk, sugar, cocoa powder and salt in a sauce pan and heat until just boiling. Meanwhile, whisk together the egg yolks. Gradually pour the hot milk into the egg yolks, whisking constantly; pour the mixture back into the saucepan and place over a medium-low heat. Cook, stirring constantly, until the mixture has thickened enough to coat the back of a spoon, do not let it boil.
Pour the custard through the sieve onto the chocolate, stir until the chocolate has melted and the mixture is smooth then whisk in the cream followed by the porter and vanilla extract.
Cover and refrigerate until completely cold then churn in an ice cream maker according to the manufacturers directions; transfer to a container and freeze for a couple of hours before serving.
To make the porter caramel sauce, place the sugar and water in a heavy bottomed saucepan over a medium-high heat. Cook, swirling the pan (don't stir) until the sugar has dissolved and turned amber coloured. Immediately remove from the heat and pour in the cream and porter.
Return the pan to a low heat and stir until smooth then bring up to a simmer and cook for five minutes or so until it has reduced and thickened a little. stir in the butter and salt, remove from the heat, allow to cool then refrigerate until cold; the caramel will thicken further as it cools.