There is a u-blox M7P designed for this purpose to use phase information inside the chip and in theory this will give just under 1m error, according to u-blox website. Additionally, having corrections like SBAS may help for the ionosphere correction, but I am not an expert and trying to do the same thing as yourself. The u-blox M8P with built in base and rover is supposed to have PPP capability at some firmware update in the future, similar to the M7P.
RTKNAVI is awesome and with beta 2.4.3 b11 or higher it supports PPP positioning with the M8T or M8P, which gives you the same PPP capability as the M7P, except the calculations for phase are done in software with more controlls, instead of on-chip. With the RTKNAVI in PPP mode and M8T or M6T sending raw pseudoranges with carrier phase, people are reporting position around 10-20cm after some long collections (long integration times).
A better method, if you don't mind post-processing a few days later, would be to use RTKNAVI or u-center to log the RAWX messages from the M8T for at least 30 minutes (or just save your raw base station data) and then post-process these after you download the exact orbital data several days later. I have not tried this myself, but it should be possible to get a fixcm level fix anywhere in the world withby collecting a raw stationary collection and then post-processing this later with the actual satellite track downloaded from the GNSS servers when they compute orbital error and sat clock error along with actual ionospheric delays from that time period at 12 days after your collection or 17 hours for a more coarse correction. (This will take some Googling around JPL, NOAA, and NASA and is different than simply downloading an RINEX or RTK base station file from far away to post-process your raw gps base station) This freesshould free you from having to find a nearby RTK reference station within 30km and should give nearly RTK performance.
https://igscb.jpl.nasa.gov/components/prods_cb.html
If you useare using your local two M8Ts with one as rover and one as base, whatever position you resolve from the rover in RTK, even if the base station location is off by a meter or two, all you have to do is shift can be easily corrected by shifting all RTK rover positions by some small ammountoffset a few days later, after you calculate the base station location error vs the approximate M8T base location that you entered from your phone during setup. Please
Please post back if you find something that works. :)