If WriteEngineServ fails mid-transaction then the transaction gets held open forever. This means the lock is held open until there is manual intervention.
This affects both DMLProc and the bulk write API as they have no way of rolling back the transaction without WriteEngineServ running.
WriteEngineServ should track this and initiate rollback when restarting. At the moment only DMLProc initiates rollback on restart.