I've looked at the code, here are the issues:
The inquiry to determine the IP can take some small number of seconds (or longer if the provider is AWOL).
I could store the IP address on the home window when I do the inquiry, but if the connection happens on boot/start up then the inquiry doesn't happen (by design) so the IP address isn't known.
You can switch on the enhanced display option to force the inquiry to happen, but your skin would need to recognise that the IP wouldn't be on the home window until after the inquiry has happened (can be some large number of second after startup has happened) - it would be an empty string if it's not connected.
If the connection is disconnected, then the inquiry won't be run to show your updated external IP address.
Or I could write an API to force the current IP address to be written to the home window, but it could take 10 second to execute. I guess I could also indicate whether it's connected to a VPN or not, but I don't think you care about this anyway.
I think an API is the best way having looked. The API is documented on the wiki so you can look to see if you can integrate with it - I think it'd just boil down to a function call anyway. The other ways are plagued with issues. Does this work for you, even given the delay?