Как правильно освободить COM объект?
Marshal.ReleaseComObject() нужно вызывать явно — в том же самом потоке (thread), где мы получили этот COM-объект.
GC работает в другом потоке. Там вызывать нельзя. Поэтому деструктор придется убрать.
Я использую конструкцию using — код остается читабельным.using (var conn = new Object1C(connectorInstance.Connect(ConnectionArgs.ToString())))
{
    // Делаем необходимую работу
}
P.S. Не забывайте также освобождать любые 1С-объекты, полученные вами через это COM-соединение. Методика та же.
Или вы используете конструкцию using, или уничтожаете объект сами.