I think the documented behavior made more sense when you didn't have something that tracked the running state, which there now is.  I totally understand the concerns around throwing exception, which is why something like returning -1 might be a better option since it clearly calls out that something incorrect is happening with that timer.