I am thinking of driving the mosfet gate using a push-pull setup with npn pnp BJT transistors.. This way the arduino can trigger the transistors, which can provide a high current to the mosfet gate, allowing for fast gate charge / discharge of the mosfet.
No, use proper MOSFET driver chips, they work

I am trying to find a 3 or 4 amp transistor that the arduino can turn on.. and from what I'm reading, the arduino can only provide about 5 volts @ 20mA to do this..
Not likely, you need fast switching so darlingtons are out of the question, and
single BJTs don't have the gain. The only option is a pair of MOSFETs to drive
the gate on the big MOSFET. Funnily enough that's exactly what you get in a MOSFET
driver chip....
I was looking at the MJE243 MJE253 npn pnp transistor set.. but I'm not sure the arduino can provide enough current to completely turn it ON.. Here's the datasheet stats for those transistors:
Collector−Emitter Saturation Voltage = 0.3v , 0.6v
(IC= 500 mAdc, IB= 50 mAdc)
(IC= 1.0 Adc, IB= 100 mAdc)
Base−Emitter Saturation Voltage = 1.8V
(IC= 2.0 Adc, IB= 200 mAdc)
Base−Emitter On Voltage = 1.5V
(IC= 500 mAdc, VCE= 1.0 Vdc)
From this information.. what is the current required to fully turn this transistor on?
Undefined, you haven't said what collector current or what power loss you can
tolerate.
Just get a MIC4422 and some good ceramic decoupling for it. At that power level
(> 1kW load) you need really clean fast switching - during switching transients the
peak power dissipation in your MOSFETs will be similar to the load. You keep
the switching time down to 100ns or so to prevent nasty things happening. The
MIC4422 can drive many amps if needed.
Use a fast opto-coupler on the input to the MIC4422 (with that power level if
you blow a MOSFET the MIC4422 will explode too, you don't want to take out
everything else and give yourself a lethal shock either). Something like ACSL64000
series?
If you are PWM'ing the load you'll need to calculate your losses back-of-the-envelope
style...