It is much harder to converge the system at finite gate voltage, and this is why you use the zero-bias as starting point. However, the way you set up the scan over the gate voltage, it starts at the hardest case, -2 V. What you need is to split the positive and negative voltages, and start with the lowest voltage and climb up.
So, one run with
gate_voltage_list=numpy.linspace(0,2.0,8)*Volt
and another with
gate_voltage_list=numpy.linspace(0,-2.0,8)*Volt
I would also save the converged calculation of each gate voltage, in case you want to compute any other quantity (or increase for instance the k-point sampling) later. Otherwise you will have to recompute the whole thing again. So, add
nlsave('/home/it2/suxxx172/ATKSIMS/nc_files/gatescan_%s.nc' % voltage, device_configuration)
Note how this splits it up by saving in separate NC files, the calculation files can be quite large. But the transmission can go into one file so it's easier to plot the i-v curve.
You should also always have the ".nc" extension on the nlsave file.
The other problem is unclear to me...