You are correct that there are improvements to be made. The current internal representation is—for the moment—simply the Python standard library.
Probably the approach of Chrono is best: allow leap seconds to be represented (i.e. 23:59:60), but not to account for them historically.