Thank you for posting this, Mike.
This is not so much a Tableau quirk (I think it does the right thing with NOW() and TODAY()), but more of a data awareness issue. In your case one needs to be aware that data's timezone is different to Tableau's, and cater for it.
7.0.4 has just been released. Here's a release not of interest to this discussion:
The "Data Update Time" that can be inserted into titles and captions was not properly representing different locale settings. The time is now always expressed in the time zone of the computer that is opening the workbook. The format is determined by the workbook locale setting.
I guess the big thing for me is that it would be helpful if NOW() and TODAY() optionally took a timezone. I think it's a bit more than just a data awareness issue - I literally can't use these functions as-is to do any comparisons against time data from a database, since I can't determine what timezone (and DST/non-DST setting) they're in relative to my data.
I've seen some other forum posts where people ran into similar issues, and they just hard-coded a timezone difference into their formula (something like "NOW() - 0.25" IIRC). But my point is that you can't even use a trick like that if your DB timezone and your user's timezone have different DST settings (ex: UTC vs Central), since there will be a non-constant difference between the two timezones depending on the time of year.
Another option that might work for some people, but that I can't do in my specific case, would be to use DB datatypes that preserve timezone information. I think I've also read in forum posts that Tableau doesn't recognize or use that additional timezone information though, so this might not be a usable option yet.
That's great news! I had noticed that problem too while investigating the NOW()/TODAY() problem, but that one was a bit more frivolous and cosmetic so I was just going to let it go. Nice to know it's been fixed though.