I cannot say what is the exact sequence of events between the daemon, the node and the wallet to exactly point to the offending file / line. Also, rather have no interest in investigating it.
The daemon is only interested in starting needed services (e.g., the node and the wallet), not in knowing what the status of a given plot NFT / subscribed pool is.
The same could be said about the node. Its interest is in interacting with the blockchain and maintain a full local copy of bc (that will be available for the wallet to do its job).
On the other hand, when the wallet is started and it is creating its local wallet db from scratch, it will parse the whole local bc (if available (as it is considered locally trusted), if not it will connect to the external nodes), and get all the info related to itself, it means scan for any plot NFTs that were created at any point. This is where the wallet knows that you have one with an active subscription to flexpool. Regardless of what is specified in the config.yaml, the wallet will interrogate all pools that have an active subscription to its NFTs. This is where it will try to resolve the DNS name of flexpool, and if successful, will query it (e.g., to get the current difficulty). Assuming that the DNS is there, but the pool responds with a garbage (i.e., no pool running), it will kind of gracefully barf (producing an error indicating the offending pool - what you should see in your old logs before flexpool’s DNS expired). However, when the DNS is not there, it is most likely barfing seriously bringing down itself (the wallet).
As the daemon is waiting for all services to finish the startup process, it will never get response from the wallet, thus will hold the whole startup process.
Again, I didn’t go through the code, but assume that this is the simples / shortest description of the full startup, and where the wallet / flexpool is coming into the place and why the whole startup is broken in your case (or others with the same problem).
And WHERE your STARTUP LOGIC is coming from? What makes you think that “of course” the node (or rather the daemon) is holding the wallet from starting? Could you describe the process you have in mind?