Hey, James.
I get this error with the admin links generation as well.
My siteurl option (“wordpress address”) is in a subdirectory too, but my home option (“blog address”) is just the hostname.
I have done it this way because
(a) the site is https, but I only have one IP address, so I can only have one hostname (so I don’t even use www, just the domain name).
(b) I have other web apps under other top-level URLS (https://example.com/mywebapp/…) and use mod_rewrite to handle the redirection to the correct proxy or physical location
(c) I wanted the raw domain address to redirect to the wordpress subdirectory, but I could only get it to work with the wordpress URLs set up this way.
(d) WordPress seems to use the “siteurl” option as a genuine root for accessing wp-admin, and the “home” option as a parameterised content page handler, and *assumes* that the http engine is rewriting the location as necessary.
Should your plugin perhaps use the siteurl option value for admin links?
Thanks,
Andy