Fandt ud af det!
Tilsyneladende konverteringsarket, jeg linkede til er enten forkert eller forældet. Det viser sig, at et System.TimeSpan-objekt er det, der skal til, for at Npgsql kan lave en ordentlig konvertering til et Postgresql "time"-objekt. Det forekommer mig mærkeligt, at de ville forsøge at konvertere noget, der repræsenterer en forskel mellem to tider, til det, vi tænker på som TT:mm:ss, men sådan er det.
I stedet for at ændre typen af min RunTime-egenskab fra System.DateTime til System.TimeSpan har jeg i stedet oprettet en brugerdefineret IUserType og har tilsidesat NullSafeSet til at se ud
public override void NullSafeSet(IDbCommand cmd, object value, int index)
{
var obj = (DateTime)value;
((IDbDataParameter) cmd.Parameters[index]).Value = new TimeSpan(0, obj.Hour, obj.Minute, obj.Second);
}