Hey Paul,
1. Nope, I am saying it sounds like you look for the object, wait for a set amount of time the look for object again. I am suggesting removing the delay if you have one and simply putting the search inside a loop to keep traversing the tree continuously.
2. See below.
Post a code snippet of how you are doing your FindAll and waiting for page to load, then we can see how your are doing it and maybe why it is taking 9 seconds.
9 seconds does sound excessive assuming your page is not loading slowly or there is an awful lot of objects to find and or a large tree.
Take a look at the documentation for the Wait method, I believe there are some caveats around using that such as not being supported in some browsers and if I remember correctly there are also some tips on waiting for page loads there too.