Imagine something goes wrong with the webwalking, then the script will never get to the Karam fishing spot. The conditional sleep will cause the script to wait 900 seconds before trying again. Surely you can see the problem with that!
What i'm trying to get at is a more deep-rooted, structural idea - you can never rely on any line of code to execute perfectly as this is a live game and there are many influencing variables. When I say game state, I mean querying a current 'snapshot' of the game. You're right, isAnimating is an example of this, as is the distance between the lumbridge guide and lumbridge castle. Having your script be entirely conditional on game state instead of executing lines like a recipe will make for a much more reliable script.
Apa