Let's follow a random player through the process as it stands now.
ML year 1, beginning: 0.000
ML year 1, end: 0.153 (after holding the required number of days in the minors)
ML year 2, beginning: 0.153
ML year 2, end: 0.255 (ML service days is a short data type, so will not go above 255)
ML year 3, beginning: 1.083 (this is currently a crapshoot - I've seen some players end up like this and some at 1.000)
ML year 3, end: 1.255
ML year 4, beginning: 2.083 (or 2.000, or 2.004, depending on the degree of rollover brokenness)
ML year 4, end: 2.255
ML year 5, beginning: 3.083 (or 3.000, or 3.004, or 3.008, etc.)
ML year 5, end: 3.255
ML year 6, beginning: 4.083 (or...)
ML year 6, end: 4.255
ML year 7, beginning: 5.083 (or...)
ML year 7, end: 5.255
ML year 8, beginning: 6.083
So it appears that with maximum usage, the player will be arb eligible at the beginning of his fifth ML year, and a free agent at the beginning of his eighth ML year. If at any point the rollover process inadvertently resets days to .000, then another 20 day minor league stint will add yet another year of team control.