CancellationToken not suitable to stop connecting, instead using timeout value
refactored and added tests, removed timestamp in MessageFrame