Set "mark read" -> immediately, opened unread message, it got marked read (you can tell in message header), went back to message list, message is marked read there too.
Tried 5 seconds too, if I want long enough in message view for it to be marked read, then back out, it's marked read in message list.
Tried "when closing", and I can see it getting marked read when I back out to message list.
So, working fine here, we must be missing something.
Do you swipe back and forth at all in message view?
Perhaps you use "sort by unread first" in message list -- message view will detect this and use "mark read when closing" automatically.
Maybe something else?