I think you are correct bperrybap, it appears that the digitalWite() is taking too long and the next pulseIn() occurs in a LOW and therefore has to wait.
Has digitalWrite() changed between versions?
Using direct port writes should prove that one way or another.
Rob