Consider why there are multiple Send modes and parameters such as key delay and duration.
Automation via keyboard commands is fundamentally imperfect - the keyboard state is shared between the user and programs, and there are no guarantees as to how the target application will respond to keyboard events. On top of that, there are limitations to the functions that Windows provides. Determining the keyboard layout of a window, converting characters to keycodes according to the layout, and sending keys must all be done through these functions.
In this case, I can only assume that there is a keyboard layout mismatch between what Windows reports for your console window and what the application is actually using to translate keycodes to characters. In other words,
= is translated to the keycode appropriate for the layout reported for that window, but the application interprets the keycode as
) instead. Using {text} works because it sends characters by character code, not keycode. It is not used by default because it does not work universally for everything that scripts use Send for (and even if it worked, any change in behaviour carries the risk of breaking scripts).
I guess my point is it shouldn't be required as neither = or ; are "special keys" or reserved in the context of Send.
It is not required, and is working fine for me - and presumably, everyone but you. What is different about your console application or system setup?