Usar pd.to_datetime() en cada elemento funcionó. La opción 4, que no funciona, aplica pd.to_datetime() a toda la serie. Quizás el controlador de Postgres entienda python datetime, pero no datetime64 en pandas &numpy. La opción 4 produjo el resultado correcto, pero obtuve ValueError (ver título) al enviar el DF a Postgres
timesAsPyDt = (spy0030Df['dt']).apply(lambda d: pd.to_datetime(str(d)))