Здравствуйте, Философ, Вы писали:
Ф>С блокировками: кто-то или что-то залочило объект, к которому обращается твоя процедура. Если это так, что даже если conn.CommandTimeout = 0, то ты всё равно будешь получить timeout expired, притом мгновенно, без всякого ожидания
Не, сбой происходит не мгновенно, реально проходит время ожидания, а потом таймаут.