>> I tried the step in deium's comment in my code but i found that it seemed to function the same (implied as unsuccessful)
if you are looking for a network connection as a client, then once your network is up a ping would be successful -- I believe one of your desired results.
if you are looking for an access point setup, I am most certain unless you are attempting an island-isolated network, it too would be connected to a network able to ping the next hop to know that it too was up and running, the ping would be successful - again I believe one of your desired results.
if you were truly looking for an island-isolated network - I again believe that pinging "self" would show that a round trip would say the network layer is active - one of your desired results.
Since systemd doesn't guarantee the order in which your code is going to be launched, putting a loop in your code that holds your code in place until "your conditions" are satisfied and then continues, ensures that your precursors are met before running the rest of your code. Therefore, with you wanting your LED to light up to signal that they were connected, it would be definite that a ping could not occur before a connection, and a ping does one step better - not only has the network connection been made, but proves that data can be both sent and received. If your code had such a mechanism, it would not exclusively matter which order it was launched in since it holds until your conditions are met before lighting your LED.
I am seeing you say your program is prematurely starting before the network is up.
nless I am misunderstanding your implementation, you don't describe your network as an isolated server, so therefore the access point connects to it's next hop.