Is there a way to determine if a ZonedDateTime (in the past) is in DST or not?

Yes, we've actually made this nice and easy - you just need to call ZonedDateTime.IsDaylightSavingTime. This is implemented by:
ZoneInterval from the time zone at the instant represented by the ZonedDateTimeSavings part of that ZoneIntervalOffset.Zero
See more on this question at Stackoverflow