interrupt starts at different times depending on upload time of program

That is 800 uS, not mS. It should be OK, given there is nothing else going on in the code.