Yes, for type safety and debugging, annotation can be useful.
If I understand your situation, it is very doubtful that precompiling will help you debug. The compilation of even hundreds of lines of complex code will only take a small fraction of 106 minutes. And you are trying to improve by a factor of 20.
I advise breaking the task into smaller pieces (eg functions) to help identify the slow parts. You may already know that the compiler performance type inference on functions, and inlines agressively, so you may gain performance by breaking it into smaller pieces. Sometimes, it chooses not to inline when it should, but this can be overridden with
@inline. But, you should only use
@inline after you have the bigger performance issues solved.
Read the page in the manual on performance (google “julia performance tips”).