I don't really have a preference, but there does seem to be a very small difference. "I'll have been reading for an hour when my mother returns" describes the amount of reading done at the time the mother returns, whereas "I'll have been reading for an hour by the time my mother returns" is a little more like a progress report. We could almost anticipate it being followed by "And by th
I quite prefer by the time, though I can't quite say why. It does seem a little more exact as a point in time. The word time itself seems to have some exactness in it (the hour on the clock) that when doesn't.