Prevent memory overconsumption on timeouts longer than command execution time

On timeouts much longer than command execution time references to command, observable and as a result ring buffers are preserved. This causes ineffective memory usage and potentially can cause OOM.

Proposed path wraps command into soft reference to guaranty that command, if it is not used any more, can be cleaned.