The main issue was caused by StreamReader being buffered.