If you are running emacs in a console window, it likely is using termcap/terminfo. In that case, it pays attention to the $TERM environment variable. Perhaps when you setup your coneum+cygwin configuration, the $TERM value is not the same as the other way you set it up.
Technically, termcap does not support 256-colors, so whatever $TERM emacs would use is a compromise (special value that just happens to work). This is mentioned in the ncurses FAQ: Why not make "xterm" equated to "xterm-256color"?
Some programs (such as PuTTY) allow one to set environment variables for their process. I do not see that in ConEmu's documentation. If it lacks that capability, I suppose you could set TERM as needed in your Windows environment, or in your .bashrc
On the general topic of Emacs with 256colors:
There is a hint in ConEmu's wiki which may be useful: it states that
Vim's executable must be named ‘vim.exe’;
which makes me suspect that ConEmu has some special feature which looks for this particular name when these other two configuration settings (from the wiki) are set:
Check options ‘Inject ConEmuHk’ and ‘ANSI X3.64 / xterm 256 colors’ on Features page;
Check option ‘TrueMod (24bit color) support’ on Colors page;
If that is so, you could try a workaround, by
If you happen to have a vim.exe
already around, it is possible to fixup the batch file to use the actual pathname of emacs.exe
(but this should be enough to start investigating a workaround).