Normally, with Timeout property set to -1, the RunCommand method should end when the command finishes and the underlying channel is closed by the server.
A timeout from the SSH server should manifest itself in form of connection or channel termination, which in turn would cause the RunCommand method to throw an exception.
The behavior you encountered is not any of these two cases, which means something strange is going on. Would it be possible to create a communication log (which spans those >45 minutes) using Ssh object's LogWriter property and either edit your question to include it or mail it to support@rebex.net for analysis?