Hi Luke,
I don't think as of now we have this possibility to have LB in between execution servers and agents. If I understand your requirement you are looking for high availability of the agents, but from above example you provided if you still see the context switch to new NES is only happening via Agent (because you are keeping two different values in nimi_config for respective NES's).
From my view point the LB solution best fits, if my Agent just have one entries for supernode and LB take care of it switching based on NES availability, which I haven't came across yet.
The high availability I have seen is to have two pair of NES for each sets of agent which make sure that the agents are always highly available, as they do context switch to different supernode.
Regards,
Saurabh