When using Web Access, caps/numlock sync only occurs if the user presses any button [a-z]. The lock state is kept out of sync if other buttons are pressed, until the first time you press any button [a-z]. There has been a patch upstream which makes the sync happen on *any* button press: https://github.com/novnc/noVNC/pull/1795 It would be best if this sync could occur as soon as the connection is established, but this is probably as good as it will get, and we haven't seen any real issues with this.
I tested the new sync after the noVNC vendor drop (see bug 7259 comment #2), and it seems to work as expected.