@GrahamS, as @tjp points out, disabling interrupts system wide is most likely causing some havoc with system firmware interrupts. Bit-banging 1-Wire is a pain due to the timing sensitivity and CRC errors are common. I'm not sure how often you get those errors.
In theory, it could be combined with DMA further reducing processor overhead. Maxim wrote an app-note on this.
I also recall, a member used the USART for doing 1-wire communications.