Is there a benefit to having spare nodes for handling EC2 spot interruption node termination event?

Is there a benefit to having spare capacity around (Node D). If Node A is taken back by Amazon, will my pods be rescheduled on Node D since it is already available?

Yes definitely, there are chances POD will get scheduled on that node if not any specific argument attached to deployment like Node selector, taint, affinity etc.

Do I need to do anything special to make sure the pods are rescheduled in the most efficient way?

That sounds a good idea but what if all at the same time 3 PODs get termination signal, in 2 Min all POD can be rescheduled to new Nodes?

New 3 nodes will be available or Single D node will be available?

You might need to take care about the Size of all PODs being scheduled on the number of Nodes, Readiness-liveness with proper fast configuration so POD comes up asap and handle the traffic.

If your Single D node is running, and all 3 Spot instances get terminated that can create issue, How about the PODs of Nginx ingress or service mesh you will be running?

If Nginx PODs are getting scheduled, those may take a few sec time sometimes if they are Rollingupdate then it's fine.