I don't think (1) will work - that is, I don't think a prometheus server itself can act as a server endpoint for remote_read. (Federation is different).
I would add some more lightweight options to your list, which may do the job:
3) Use promxy as a front-end to combine queries across multiple prometheus instances. This is close in spirit to your option (1), but uses the regular PromQL API to fetch data.
4) Configure separate prometheus data sources in Grafana. This is fine for graphing, but won't help you do queries which span multiple data sources.
5) Use remote_write to push all your data, or a subset of it, to a single
VictoriaMetrics instance, and query that in Grafana. A single VM node may or may not scale as far as you need, but it's a doddle to set up so you won't waste any time trying it out.
6) Use a central prometheus instance with federation to scrape a subset of the metrics and/or at lower resolution. This is useful if you only want a subset of your data available globally, and pretty easy to set up. You could also configure global recording rules here to summarise.