Diminished data rate with logic output optoisolator

Take another look at the datasheet, specifically at the 'recommended' RL pull-up resistor value.
That's 270 Ohms, while you're using 15k.

That device sources very little (if any) current when the output goes high, so the rise time you're seeing is directly proportional to that RL pullup resistor you're using (combined with the gate capacitance of your Q40 and any parasitics).


The switching time test circuit from the linked datasheet shows that the LED is controlled with a push/pull driver with a rise/fall time of 10 ns:

Everlight H11L1 switching time test circuit

Your open-collector driver will not be able to manage that. Consider using some logic inverter (e.g., (SN)74AHC1G14) instead.

Furthermore, the circuit uses a speed-up capacitor. Fairchild's application note High Speed Optocoupler and its Switching Characteristics H11LxM, H11NxM shows that it should be 470 pF. However, should not be needed for 100 kHz.

The output pull-up resistor should be smaller. Q40 just inverts the signal; you can omit it if you use a non-inverting buffer to drive the LED (or if you use a PNP to drive the anode).