I think what is happening in this case is IRQs are being used to send the data via software serial, but they're also being used to receive as well - so you're basically guaranteed that when a pin changes state Espruino will be at least a little busy, which will mess up the timings. At lower baud rates you might be fine though.
Thanks to @Robin , for the insight and opening relation to other links/threads.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
@Gordon: Got it, for your explanation :
Thanks to @Robin , for the insight and opening relation to other links/threads.