Found the solution. Not the cause. I've been searching online for this issue and I found lots of code examples to get the difference between local time and UT. But they all failed on 64 bit Windows.
There's a function to get UT. Which returns, for example, 1:10
Then there's a function to get local time. Which returns 3:10
Oddly, when I calculate the difference between the two, I get 1 instead of 2 hours. In 32 bit Windows it returns 2.
Since I *can* see the correct hours and minutes, I'm now checking if there's an extra offset of at most 2 hours, and if so, I add that to the RDS time zone info. This seems to work. I hope there are no unexpected side effects...
Fix will be available in 7.51 BETA 023