Good news for those of you who asked for this feature...it's just about done. I now have a new beta working that only marks topics as unread when they've been updated since your last session. Once your session ends, all topics are marked as read.
As I said in my previous post, I'll probably implement a user setting that allows you to select which method you want (topics marked as read at session end or topics always marked unread until you've read them).
Still working on the "Mark forum as read" thing. You'll probably see it in the same update when it happens.