.Exist(0) does not wait at all...but it only applies to the end object you specify.
i.e. Browser(a).page(b).object(c).exist(0) will return immediately for c...but only if a and b already exist, if not qtp will apply that default sync time value to "a" and "b" first before it ever gets to the operation on "c".
Your code would be structured like this
I'm not sure if that App.Test.Settings change will take affect at run-time or not. Some of those commands only work on a non-active test. Could try it out.
If browser(a).exist(0) then
do anyhing related to browser
If browser(a).page(b).exist(0) then
do anything related to page(most code for a page is within this statement
If browser(a).page(b).object(c).exist(0) then
do anything related to object
msgbox object does not exist
msgbox page does not exist
msgbox browser doesn't exist