In order to handle historic DST rules one would need to use TimeZoneInfo.ConvertTime* methods. If one tries to use the ConvertTimeFromUtc for a UTC instant that occurs during the DST 1-2 am hour, this does not work correctly. When investigating the result of the ConvertTimeFromUtc call you'll notice that the IsDaylightSavingTime method does not return the correct result (it returns false when it should be true). However, if you look at the difference in Ticks it shows the correct offset. Also, if you investigate the UTC DateTime with the appropriate TimeZoneInfo using IsDaylightSavingTime, it returns the correct result. What is even more confusing is that if you were to use the ToLocalTime method on DateTime, it will return correctly. However, this is not an option due to this function not working properly for historic DateTime instances and the possible need to convert to time zones other than the local time zone of the machine.
The end result is that you can't convert from Utc to a different time zone, back to Utc for this one hour of the year.
I don't see anywhere in the documentation that calls this out or gives a valid reason for the discrepancy.