By your own definition it doesn't work accurately other on really slow machines. The previous test will always affect the result for the current test. Test1 will always have a higher FPS so the first readings for Test2 will be artificially higher than real - repeat this observation as it will hold true for each test
Viewing post in Added an HTML5 demo (and made the demo fancier) comments
Like I said, i built in a delay between rounds that should wait out the time it takes for the sliding window to catch up.
That said, I checked the HTML5 source and it apparently takes two seconds for the fps value to refresh and I only accounted for one, so I edited it again.