Эмуляция таймаута записи в сокет C#

Имеется socket-клиент вот с такой функцией отправки данных:

private async Task InternalWriteMessageAsync(byte[] data)
{
    try
    {
        using CancellationTokenSource timeoutCts = new(_options.SendTimeout);
        // _clientStream - это NetworkStream
        await _clientStream.WriteAsync(data.AsMemory(), timeoutCts.Token).ConfigureAwait(false);
    }
    catch (Exception ex)
    {
        ...
    }
}

В ней используется CancellationToken для отмены операции через определенное время. По аналогии с этой функцией сделано чтение данных, и отмена по таймауту успешно работает. Протестировать отмену по таймауту при записи никак не получается. Большой объем передаваемых данных, маленький буфер сокета, медленное чтение, обрыв соединения не помогает эмулировать ситуацию с длительной записью в сокет.

Возможно ли эмулировать такую ситуацию на практике?

Класс-обертку с Task.Delay в функции WriteAsync я могу написать, но хотелось бы протестировать код в реальной ситуации, чтобы на 100% убедится, что все работает корректно.

P.S. таймауты для сокета установлены:

Socket socket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
{
    SendBufferSize = _options.SendBufferSize,
    ReceiveBufferSize = _options.ReceiveBufferSize,
    SendTimeout = (int)_options.SendTimeout.TotalMilliseconds,
    ReceiveTimeout = (int)_options.ReceiveTimeout.TotalMilliseconds
};

Ответы (0 шт):