Put the pistachios and grated coconut on 2 separate small plates. Lightly spray a large plate with cooking spray.
Put the semisweet chocolate chips in a ramekin or very small microwave-safe bowl and microwave, stirring every 30 seconds, until melted. Stir in the coconut oil.
Dip a marshmallow halfway in the chocolate, then coat in the pistachios; transfer to the sprayed plate. Repeat with 3 more of the marshmallows. Dip the remaining marshmallows halfway in the chocolate, then coat in the coconut. Refrigerate until ready to serve.
Put the white chocolate chips, cardamom and 1 cup of the milk in a medium saucepan. Heat over medium-high heat, whisking often, until smooth. Add the heavy cream and remaining 2 1/2 cups milk and heat, stirring occasionally, until hot. Stir in the vanilla.
Serve the white hot chocolate with the marshmallows.