And just for kicks:
TimeZoneOffset["Europe/Berlin", {2023, 3, 26, 2, 30, 0}]
{}
So, Mathematica doesn't commit to an offset for this time specification.
Also:
TimeZoneConvert[DateObject[{2023, 3, 26, 1, 30, 0}, TimeZone -> "Europe/Berlin"], "GMT"]
DateObject[List[2023, 3, 26, 0, 30, 0], "Instant", "Gregorian", "GMT"]
TimeZoneConvert[DateObject[{2023, 3, 26, 2, 30, 0}, TimeZone -> "Europe/Berlin"], "GMT"]
DateObject[List[2023, 3, 26, 1, 30, 0], "Instant", "Gregorian", "GMT"]
TimeZoneConvert[DateObject[{2023, 3, 26, 3, 30, 0}, TimeZone -> "Europe/Berlin"], "GMT"]
DateObject[List[2023, 3, 26, 1, 30, 0], "Instant", "Gregorian", "GMT"]
These seem all reasonable choices. Your A/B convention doesn't fix the inverse problem of only 23 hours during the day when daylight saving begins, but Mathematica does something sensible.
Really, Mathematica has all of the knowledge that you need to do your time-related computations correctly.