Evaluate all available commands.
Handle blocking commands by increasing timeouts as required.
Add tests.