To "properly" drive an LED you must use constant current drive.
If you attempt constant voltage drive you will at best obtain approximate power control and at worst will destroy the LED and/or shorten its functional lifetime.
Your option 1 is effectively a voltage control method so is unsuitable.
Your option 3 - "Using 3 "LDD-1000H" drivers (1A each, accepts PWM dimming) in parallel ." MAY work OK but the control loops of the 3 drivers MAY interact. It may work better if you drive 2 at full output (nominal 1A each) and PWM control the 3rd.
Your option 2 "Using a MOSFET circuit to drive the LED, controlled by the 0-5V feed from the Arduino." is acceptable in principle but implies that the MOSFET is a linear driver - so power dissipation in the MOSFET may be high.
A variant of 1 & 3 would work. ie
- Operate the LED in the drain of an N channel MOSFET.
- Place a current sense resistor behind source and ground.
- Filter the source voltage with an RC filter and feed this voltage to an Arduino ADC input as an indication of current.
-Use a suitable series R in FET V+ circuit and PWM the FET, monitor source current and vary PWM ratio to adjust current or
- Use a comparator to PWM drive the FET. Feed comparator with smoothed Vsource-resistor and V_control_Arduino (a say 5V control signal divided down to match the sense resistor voltage.
LED current is controlled by varying the control voltage fed to the comparmator.
Above I mention a series resistor in the Drain circuit. This limits Imax. You effectively have a buck converter without the inductor. Adding an inductor and catch diode turns this into a buck converter. .