Yes, I think that it's worth trying to preserve more of current behavior, changes like that tend get noticed by users.
It's generally tricky to get `get_initial_console` right, when we're launched directly from Unix process, we don't have create process flags, so there is no single 'right' answer. In this case it comes down to a question if we want it to behave like `STARTF_USESTDHANDLES` or not. Making it behave like `STARTF_USESTDHANDLES` would match closer to Unix behavior and would not remove users' ability to do that. Moving CUI check below `wine_server_fd_to_handle` calls would achieve that in `get_initial_console`, but you're right that start.exe would also need a change.
And yes, it could at least partially mitigate !4566. Those would still not be true console handles, so depending on what apps are doing, it may or may not work, but it would at least be a valid state that would match what can be done on Windows - just instead of console handles, app would see an unknown pipe-alike device handle.