Why... can't you have I/O redirection to the null device and have it understand (and throw away) Console API messages? You might as well also add some pseudo-device to convert Console API messages into Unix-style text streams (with or without metadata converted to terminal control sequences), so that one could redirect console programs' output to files / pipes.
When the user's (programmer's) intent is to run a program with no console window, then that's what they should get: no console window.
When the user's (programmer's) intent is to run a program with no console window, then that's what they should get: no console window.