According to the datetime.h file, the valid range for year is 1-9999, so it's a bit surprising that Python 3.6 allows dates outside this range.
Internally, the year is represented using 2 bytes, so you could represent years outside the range and up to 65535 as well.
Here's what mxDateTime outputs for the given timestamps:
>>> from mx.DateTime import *
>>> DateTimeFromTicks(1<<40)
<mx.DateTime.DateTime object for '36812-02-20 01:36:16.00' at 7f17a38a2390>
>>> DateTimeFromTicks(1<<41)
<mx.DateTime.DateTime object for '71654-04-10 03:12:32.00' at 7f17a1bdf858>