Yeah, I get the same results.
I don't understand the logic of that script, or perhaps I don't understand the protocol. Looks like you send EOF to a node with netcat and wait 2 seconds for a response then terminate the connection. The script will wait up to 10 seconds to establish the connection. If the witness doesn't return a string the script result is failed otherwise it's ok.
Is EOF End of File or End of Frame? Either way the witness is supposed to respond to basically null data with an ack of some sort?
As I said I get the same result as you, yet as you say the nodes are all talking. Sorry if this sounds negative, but this is pretty much what frustrates me about how the devs in this community communicate. It's just too terse and abbreviated and I struggle to follow as a result. I think it's safe to say if transactions weren't being processed the indication would be more obvious.
You clearly have deeper knowledge of BitShares internals than I do, but I'm afraid you'll have to provide a few more details before I'll understand what the issue is. As for monitoring my nodes I am using wackou's bts_tools which is far more comprehensive at monitoring the nodes than I've seen from other sources. Not saying it's the best at it, there may be other tools which are better but I haven't seen them described or documented as well as bts_tools. The tools could use some refinement, but no code is perfect.
If you want me to do other tests or want me to check anything just let me know and I'll do my best to help you out.
Sorry I have no time to explain. Perhaps I'll get @wackou to talk with you, seems you trust him more. Best if @bytemaster has written a white paper for the protocol, but right now all info is in the code.
I'm empathetic to your lack of time, and this isn't an indictment on you personally abit. However if the only source of info about the problem is in the code after 6 months of it being released, that is IMO, a bigger more fundamental problem that speaks to lots of issues, such as lack of adoption and inability to entice developers to become interested in BitShares, which as I mentioned previously keeps me from wanting to get involved with STEEM as a witness.
Also, it's not a matter of trust, it's a matter of who can / is willing / has the time to provide information. Any "distrust" you may perceive probably has its roots in the questions I raise due to the lack of information I need to understand the issue / situation. Like you I don't have the time to decipher the C++ code to understand what it intends to accomplish.
I will offer my assistance to run whatever scripts or tests you may need me to run to gather data or provide logs etc. if that is useful to you. I suspect it won't be but short of other suggestions that's about as much as I can offer.
Good luck in tracking down the issue (sounds like a flaw in the code design to me) and keep us posted on your progress.