The parent/childs solution seems elegant and interesting. A child for each device, opening the ssh connection and then receiving instructions and sending results through an IPC message queue. You could parse the commands' output in the childs' code and use a simple protocol to communicate with the parent.
Comment on Re: SSH2 - Asynchronous Opens & Synchronous Commands