This allowed us to implement the following InitElements() in our framework:
PageFactory.InitElements(DeviceMainTab, new RetryingElementLocator(Driver.SwitchToInnerFrames("main>tabPage"), AutomationConstants.DEFAULT_OBJECT_TIMEOUT));
The first argument is the object or class that is being initialized, the second parameter is another method that implements the RetryingElementLocator class. We gave it the Driver.SwitchToInnerFrames so that it would always switch to that frame set on that page in our application in order to find the defined elements.
The second parameter to RetryingElementLocator() is just a timeout, which we set to a constant that is 20 seconds.
This eliminated the majority of the latency and subsequent Element Not Found errors we were experiencing and was much simpler than trying to implement LoadableComponent pattern which we found did not work well with PageFactory.