The 'unknown source position' message is NOT the exact error message: before this one there should be another message that states the real error code and that can help you in debugging your app.
Anyway, there should be no problem in running multiple timers in a program, especially if, as you say, the new one is started when the old one ends.
One possible problem can arise in starting the new timer while stil ending the preceding one: I personally will try to insert in the callback a PostDeferredCall to another function (that executes when the first one has finisched) that starts the new timer.
Also, as the help for DiscardAsyncTimer states "A call to create or discard an asynchronous timer will not complete(will block) until all outstanding asynchronous ca
llbacks return", I will add some way of knowing if the callbacks have finished or not (some global flag set to 1 if running and to 0 at the end, the way to implement it depends on your program's structure).