unfortunately, I've also learned about it, however in the most painful way - by looking it up in kernel code, after half an hour of trial and error.
So, the thing is, os_input_string takes BX register as a character count. I presume it was supposed to be safer than the old version, which had a static buffer, 255 bytes long. Now, it only reads into memory BX characters from the keyboard, and then it stops.
And now it's a bit of a shame because when you try to use it in your programs - you're most likely to use it at the beginning, and the kernel automatically sets all registers to 0 at startup. So you end up calling os_input_string with BX equal to zero, and it tries to get this many characters, thus immediately returns.
A quick look in CHANGES.TXT explains what happened: this feature was added in version 4.6, yet documentation wasn't accordingly updated. Hope it clears a picture a little bit.