Would waiting for WM_CHAR message to trigger the event cause any problems?
Yes, they are very different.
The on KEYDOWN/KEYUP events return WM_KEYDOWN/WM_KEYUP keyboard presses. The WM_CHAR event returns actual characters after WM_KEYDOWN is triggered and the key press is translated and could be different to the non-translated key press. Some WM_KEYDOWN events do not generate any WM_CHAR events.
I may add an on CHAR event, however, even if I do, as a scripter, you may need to process both on KEYDOWN/KEYUP and on CHAR in your scripts. If your script is checking cursor key presses eg. for games, you will probably only need on KEYDOWN/KEYUP (cursor, and various other keys, do not generate WM_CHAR events). If you are trying to capture typed text, as in a text editor, you will need on CHAR. If you are trying to do both, your script will need to check all three events.