> my concern is primarily that although all the systems people use
> Fail2Ban probably support pipes, I fear that actual behavior might
> "vary" to say the least and if we use "pipe" mechanism all the time,
> there could be hard(er)-to-troubleshoot breakages without a way to get
> back to previous way of functioning.
>
I can understand that question, however, I stole the idea from 
gunicorn, which is known to run on many platforms seamlessly. Moreover, 
the os.pipe() is available on both Unix and Windows according to Python 
docs. The only thing that may be different is the call to fcntl with 
FD_CLOEXEC file, which has to be supported by the kernel (Linux >= 
2.6.23 according to open(2) manual)