Looks like the issue stems from the way it handles journal messages while taming. A simple solution would be to use a journal index variable and increment/scanjournal if it is less than the current #jindex. Getting rid of the deletejournal statements in the logic would also be needed.
As it is, if more than 1 message shows up in the journal (the taming messages "I've been looking for a companion like you", or an animal spawns and "You see a ...") the tame success message can be missed. Once the timeout is reached, the journal is cleaned up via deletejournal and you return to try to find the next tame.
A fancier way to restructure the messages would be with something like TM's Advance Journal routines. Then some of the conditions could be combined into the same block for what it does next.
The code is very well structured and clean, so it would not be difficult to make either of those changes.
Gaderian