Right. I say ~40 kHz because there are a multitude of options when selecting an IR "frequency."
I looked at the actual IR receiver component in my DCS-RC base and it was stamped with the number 4838. I then re-scoped the "bell" button and turned on the parameter measurements for the burst:
So the DCS-RC remote is modulating the IR LED at about 38 kHz which matches the receiver component in the base.
But the fact of the matter, based on the technology used in these IR receiver chip, is they are not THAT frequency selective...in the way that an RF crystal receiver is fairly exacting on the carrier frequency.
In the top diagram, note how even if you're several kHz off (i.e., 5% or even 10%) you still get a response. Yes, maybe it's only half as sensitive so you can't trigger from 20 feet away...but maybe only 10 feet away. But it's not like you get nothing.
If I understand your experiments, if you "manually" press the Bell button on the DCS-RC remote within ~2 seconds of turning on the engine...you get 100% success keeping the engine silent and in command-mode.
But using the Arduino you get something less than certainty. When it doesn't work are you getting the momentary blink "off" of the green LED in the DCS-RC base? If you don't get this blink then the DCS-RC base is not recognizing the Arduino's IR burst.
This may be a bit in the weeds, and I haven't studied it, but do you know HOW the Arduino library generates the 38 kHz NEC modulation? Specifically, does it "bit-bang" the output port with loops of instruction cycles at the 38 kHz rate? Or does it use a PWM output set to ~38 kHz and bit-bang that port at the slower baud rate (vs. the 38 kHz carrier rate)? Or does it use the SPI port with a FIFO queue to stream out the pre-determined bit pattern at the 38 kHz carrier rate?