It is just this issue which is more complicated to achieve, in general the new input system is much cleaner.
The most common case got a lot more complicated to make it "cleaner"?
I can't see any common use case where I would want to get the keyboard state while the window is unfocused. (except for a keylogger).
Keeping track of the window focus seems like the easiest way of doing the common case. Perhaps providing a window.HasFocus() method would make it simple again.