Has anyone else had any trouble with the auto-bed-level sometimes not running or not completing?

My custom start gcode in Slic3r heats the bed, starts the hot ends heating and then runs G28 followed by G29 to home and auto-level. After the G29, it moves the extruder tips just off the front edge of the bed (Y=215, Z=0), primes them and then wipes them onto the glass.

Sometimes, the G28 runs, and it homes in the center, but the G29 sequence doesn't run and the printer is left with the Z level off by about 6mm. Those first layers don't adhere to the bed real well when they're applied from 6mm up.

I haven't figured out how to reproduce it at will yet, but it seems to happen if I've already run one print job and haven't reset the printer. Or maybe it's just happening when the Z axis is high (90mm or more) and it takes a long time for the G28 Z probe.

Ideas?