In 2.4, sleepmicros(1) was added to the yield code which is called after scanning 256 documents when finding the start position for the tailable cursor used in replication.
On some platforms (in particular, virtualized ones), the sleepmicros() call actually sleeps for much more than a microsecond (its guaranteed to "sleep at least 1 microsecond")
It can sleep as long as one millisecond or longer, at times.
This affected FindingStartCursor particularly hard, which is the method that replica sets use to find their position in their sync source's oplog. Thus on a busy system this query was taking a lot longer than it should have, sometimes resulting in timeouts.