Разбрах!
Очевидно листът за преобразуване, който свързах до е грешно или остаряло. Оказва се, че обектът System.TimeSpan е това, което е необходимо, за да може Npgsql да извърши правилно преобразуване към обект "време" на Postgresql. Струва ми се странно, че се опитват да преобразуват нещо, което представлява разликата между две времена, в това, което смятаме за ЧЧ:мм:сс, но това е така.
Вместо да променя типа на моето свойство RunTime от System.DateTime на System.TimeSpan, вместо това създадох персонализиран IUserType и замених NullSafeSet, за да изглежда така
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);
}