Using an arduino to control a couple of LEDs is overkill, don't you think?
Maybe if you had a bunch of other functions that the Arduino was doing, that would be another matter, but for a simple red/blue LED switch, it's a little...
I'll usually watch the LED on-board, because that tells a story. If the heater LED is on, then I assume that the Duet wants the heater to be hotter than it is. When it turns off, it has reached temperature. Of course it will cycle on and off while it maintains temperature.
Personally, I'd probably be tempted to insert the Arduino between the Duet and the PanelDue, have it intercept the serial communication between the two (Panel Due sends M408 S4, Duet responds with a JSON dataset, which includes things like the bed and heater temperature, then just pass on the information. you internally parse the JSON dataset, and do what you want with the information. your Arduino will need two UARTS to do this, one to talk to the Duet and another to talk to the PanelDue. It should appear invisible to both units, taking all data from the one and passing it to the other. Maybe you can use a single UART to tie it in in parallel, only monitoring the duet's output. you'll need to do some creative guessing to try figuring out what the PanelDue is asking for, but you can probably look for the JSON pattern that signifies the M408 response from the PanelDue and ignore other input.
This will give your Arduino a lot of information, like temperature, tool coordinates, homed status. (An example of an M408 S4 response:
{"status":"O","coords":{"axesHomed":[0,0,0],"xyz":[0.000,0.000,0.000],"machine":[0.000,0.000,0.000],"extr":[0.0]},"speeds":{"requested":0.0,"top":0.0},"currentTool":-1,"params":{"atxPower":0,"fanPercent":[30,100,100,0,0,0,0,0,0],"speedFactor":100.0,"extrFactors":[100.0],"babystep":0.000},"sensors":{"probeValue":0,"fanRPM":0},"temps":{"bed":{"current":2000.0,"active":0.0,"state":0,"heater":0},"current":[2000.0,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0],"state":[0,0,0,0,0,0,0,0],"tools":{"active":[[0.0]],"standby":[[0.0]]},"extra":[{"name":"MCU","temp":37.3}]},"time":313.0,"currentLayer":0,"currentLayerTime":0.0,"extrRaw":[0.0],"fractionPrinted":0.0,"filePosition":0,"firstLayerDuration":0.0,"firstLayerHeight":0.00,"printDuration":0.0,"warmUpDuration":0.0,"timesLeft":{"file":0.0,"filament":0.0,"layer":0.0}}
So some other things that you can grab from this are things like the CPU temperature (Mine is apparently about 37 deg C right now), which you can use to control a cooling fan. This Duet is reporting 2000 deg for all heaters because there are no sensors actually connected to it. I'm actually using it developing/testing an interface using the PanelDue port to talk to a Raspberry Pi which will do most of the things that the PanelDue can do, plus some additional things that I want it to do (Like control a cooling fan.)
Note that this will not only give you the current temperature, but also the active and standby temperatures, the current selected tool, plus the state which tells you what the Duet is supposedly aiming for. You can then have 3 lights (Blue for current tool temperature + 3 < active/standby temperature, green for current tool temperature within 3 degrees of target, red for current tool temperature > target temperature + 3) Or whatever else you can imagine.
I think that this is probably the best solution to get the information that you want. You'll need to be sure to be constantly passing the information between the two boards back and forth to each other, and your Arduino may need level shifting (Depending on which Arduino you use) to get 3.3V on the UART instead of 5V, but the end result will get you the information that you want. (You won't even have to ask for the information, since the PanelDue will do it for you.)