It currently take at max the first 5 relays from the NIP65 list (I thought I had lowered it to 3, I'll decrease it soon).
But also taking at max 3, the number of connections may be high. Should I lower it to 2?
We've added support for "sleep when idle" for relays (in master branch). I still have to finalize the support in the SDK. With this, the gossip relays (or even all relays) can connect on-demand and sleep when idle.
Another plan is to add a persistent storage for gossip data, give a rank/score to relays... but I still not found the best way to do this. Ideas are appreciated :)