Blend the cashews with 3 cups water into a very smooth milk/cream. If your blender isn't very powerful, soak the cashews in water for at least an hour first.
Heat 1 tbsp oil in a large pan, preferably nonstick. A wider pan will allow the liquid to thicken and evaporate more easily. Add the sliced almonds or any other nuts you are using. Saute them for a couple of minutes until they just begin to change color. Add the carrots and cardamom, saute a couple of minutes, then add the cashew milk. * (If using dates to sweeten, see notes below before adding all the milk).
Cook, stirring occasionally, over medium-low heat until most of the milk has been absorbed into the cashews. This will take at least 15-20 minutes. If it's going too slow, increase the heat a bit but keep an eye on the carrots and stir them often because you don't want them to stick to the bottom.
Add the sugar and the remaining 1 tbsp oil and stir until it's well mixed and the sugar has dissolved.
At this stage, you can pretty much decide how much longer you want your halwa to cook -- taking it off the heat at this point will give you a more pudding-like texture, but you can continue to cook longer until the halwa pulls off the bottom and sides of the pan and there's absolutely no visible liquid. I like to cook the halwa to this stage, but it means some exercise for your arm, so be warned.
Once the halwa reaches the desired state of doneness, take if off the heat. You can eat the halwa warm or at room temperature or cold, it's delicious every way. Garnish with sliced almonds before serving, if you wish.