MacBook Pro won't put external display to sleep when idle
So I think the reason is that the new monitor supports audio, and putting the display to sleep would also kill audio output. Even if the monitor isn't selected as the default output device, coreaudiod prevents display sleep in case some application wants to use it.

I found a solution. I installed ScriptSaver, which will run an AppleScript when the screensaver starts. I have it run an AppleScript containing:

do shell script "pmset displaysleepnow"