Pretty Rounded Duration Serializer
Serializes a Duration as a second-rounded, human-readable string (e.g. "1h 2m 3s") via pretty, and parses it back with parsePrettyDuration. Sub-second precision is lost on round-trip.