Rodney, when I posted my suggestion I was kinda hoping that your fire script was small, because of just that problem (wasting nvram).
I guess I'm now too close to understanding the detailed workings & timings to appreciate just how blackbox-ish it is to most other people, and how fuzzy they'd understand the sequencing and failure paths.
Even though usb is enabled relatively early on, there is a lot of stuff that happens along the wires. Enumerating hubs & devices, handshaking, reading partition tables, multi-second settling time delays, etc. Then there's the fact that journal replay/recovery on a ext3 can take anywhere from 2 seconds to 10 minutes, so the time between the mount command being executed and the mountpoint being usable can take a long time——much longer than the time it takes to get the network up.
Not to mention, of course, the fact that the drive (or cifs) might be disconnected or powered off. A spinwait will almost always be a poor solution, and will never be able to reliably handle all the possible cases.
Really, the only method that will reliably work is doing what you need to do in an autorun script. This is a conclusion that I came to after much ripping of hair and gnashing of teeth—-and much effort at trying to get other, more seemingly direct, methods to work. I was going to second tb's suggestion (with a slight modification), but I see that you got it and enhanced it right.
Yours is pretty much what I do for a similar things. Look and/or wait for a "notice" flag and then proceed. In log-to-disk I loop with a 1 second sleep, for maximum 5 minutes, waiting for the sysup flag. Don't forget that delays in timing can work in both directions. It is possible for the usb drive to come up either before or after the firewall. Depends on how bullet-proof you want to make it. Remember that all auto-executed scripts are waited on for completion, for up to 3-5 seconds. If you do have a sleep loop (or maybe even if you don't) you might want to have it spawned to avoid this useless wait. Simplest way is to have "&" in the name, like "25-log-to-disk&.autorun".
I went a bit more comprehensive, to pick up anywhere the scripts might be …
for dir in /etc/config /jffs/etc/config /opt/etc/config /mmc/etc/config /tmp/config ; do
for s in $dir/*.usbhotplug ; do
[ -x $s ] && INTERFACE=1/2/0 PRODUCT=123/4567/890 ACTION=add $s