odesolve divides the interval by default into 10^3 steps.
If the interval runs from 0 to 6 as in your first example, this means timestep is 0.006
But if you increase the interval by the factor 500 as in your last example (t runs from 0 to 3000), the timestep increases by the same factor and is now 3. Of course this usually yields a very inaccurate result.
Solution could be to increase the default value of 10^3 steps - its the fourth (optional) argument of the odesolve function.
Feel free to increase the value significantly more for more precision at the higher values of t.