There is a WIP .Net wrapper (along with a python wrapper) in oisaddons module. I suggest you chekc it out.
It is already possible to get a copy of the keystate, but i admit, doing this every frame is more costly then isKeyDone.. Espcially with it being virtual.
Perhaps, the keyboard buffer and testing will be moved up in to the Keyboard class next release. As, it is really just a simple array common to all the current implementations. But, being made public, that breaks the rules of encapsulations.. no reason why that member should be public. Plus, the preferred method in my oppinion is to use buffered input in all situations - so you never miss a key, and action mapping can work well.