As a wild guess, I bet it only reaches 1.0 on screen refreshes that divide into 5000 ;)
Its because somtimes the elapsed time is greater than the fade time
EG 4980 + 60 Milli is grater then your 5000 Fadetimer, so it dosent run a cycle with it as one.
To fix it make FadeTimer a multiple of the refresh rate (ie 5040 for 60Hz)
Its because somtimes the elapsed time is greater than the fade time
While ElapsedTime <= FadeTimerIt will happen whenever (Milliseconds Per Frame) isnt a denominator of fadetimer
EG 4980 + 60 Milli is grater then your 5000 Fadetimer, so it dosent run a cycle with it as one.
To fix it make FadeTimer a multiple of the refresh rate (ie 5040 for 60Hz)