First, we need a master server or servers to be mirrored
Not to sound rude but this sounds like an extreme case of centralization. Who controls the "master server"? What happens if they are a malicious actor?
Second, anyone should, at any time , be able to request to volunteer in the mirror-list
This is almost exactly what we have now. You can run a listening node even without a static IP, you just need the port forwarded.
Third, when users have fallen too much behind, or are doing their first sync, unless they have this specific option disabled, they must start synchronizing selecting a random server.
By default, if a node has not received a block for a half hour it will request blocks from other nodes (I think). And you can always use the "Download Blocks" feature. I understand that this can be kind-of slow, but there has been a little bit of discussion in the slack on hosting our snapshots as consensus-generated torrents, instead of on the gridcoin.us server.
RE: Now that GRC has been reactivated in the exchanges, it's time for me to discuss two easily implementable ideas that will make gridcoin much pleasurable to use.