Setting a static route every boot with launchd / plist is failing
A short call to scutil should help with testing whether the network is up for a specific interface on IPv4 which should suffice to determine when you can add an IPv4 route. The following command will return a 0 if the first ethernet connection has a viable IPv4 address within the default 15 second timeout period.


/usr/sbin/scutil -w State:/Network/Interface/en0/IPv4


You could instead call a script to do the testing and routing - perhaps using the -t command to adjust the timeout if needed. I don't know a way to overload the launchd arguments to have everything contained, but it should be fine to have launchd kick off a script on the local filesystem to accomplish this task. Use care if you are not using en0 for your IPv4 or wish to have routing on other than the default networking interface.

That script can then check for errors, perhaps check for other interfaces as well as log success and failure using the logger command.