When piping the output of the subprocess, it will sleep when its buffer is full
#1. Use the communicate method if you don't mind it blocking, or read from the stdout file descriptor.
or
#2 Send the stdout to /dev/null since you don't seem to be using it.
subprocess.Popen(cmdline, shell=False, stdin=None, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, close_fds=False)