The Vce of the 2N3904 is too low.
Not for a gate driver (it probably only needs to be powered from 12V). But, in any case, the 2N3904 can't switch anything like the current you need.
I'm testing the circuit in post #15 with a spare BC547C, a 910 ohm load and a USB oscilloscope and I can see how the turn off time increases with a higher resistance to base which explains the slow turn off time with saturation switching as Bob said.
If you place a diode from base to collector (preferably a schottky diode) you'll see a marked increase in speed.
But Steve, your MOSFET driver circuit uses a similar resistor>base configuration to switch the MOSFET off which you say is slower than a BJT?
The mosfet will switch much faster if supplied with a high gate current. This circuit supplies that higher gate current. A BJT has a gain that will fall at high currents. Effectively this means that switching high currents requires a higher base current. Try this with your test setup. Have a look at how the switching speed changes as you vary the collector load.
While BJT's are capable of operating at higher frequencies than MOSFETs, they have a broader linear region. Most MOSFETS are made for switching and have a far more narrow linear region.
If I dump the Picaxe could I create a purely 50v logic circuit that creates pulses of a precise length or would I need to ask that in a different part of the forum?
It probably doesn't matter what you use. And there's not a logic family that supports a 50V supply rail anyway. You could use one of the CMOS families that can operate from a 15V rail.
I guess we should ask what you're actually trying to do. We've made assumptions that may not be valid.
How fast does the load need to actually be switched? Do you need rise and fall times in single digit ns, or will a couple of hundred ns be sufficient? Can you use a low side switch? or is high side switching required? What is the nature of the load?