One thing to keep in mind about the CRS305 is that it can't handle more than one or maybe two SFP+ copper modules. They use a lot of power and put out a lot of heat. I think the CRS309 has fewer restrictions.
They can work in that configuration (with up to 4 in that enclosure) but I'd only do it if you have a fan on the thing. It relies entirely on passive ventilation, and the enclosure gets hot, too, like 60°C or more!
I haven't bothered to do much actual diagnosis on this because I'm satisfied with the speed as-is, but it's another illustration of weirdness where you'd least expect it.
For the fiber ONT (what I realize now you may be calling their fiber modem) I would love to see a similar attempt to get their hardware out of the loop.
The modern versions (ie: ConnectX 6) are much more expensive of course, but the older hardware might do better with FreeBSD / Linux anyway. Of course, your mileage may vary so do some research before buying (or buy for $30 and hope for the best).
You'll also either want Optical Transceivers + Fiber, or Active Fiber (aka: Fiber that has transceivers soldered onto them already), or DAC (direct-attach copper, the cheapest but only works over small distances).
Optical Transceivers + Fiber is the most flexible of course, different transceivers are spec'd for different wires and different costs though, so it gets a bit complicated.
Active Fiber and DACs are is probably easiest, but if you buy a 10m cable but need like 12m, you need to buy a new cable + transceiver combo (rather than just purchasing a bunch of different fiber lengths).
Length and cost is the big difference from Active Fiber and DAC, but otherwise are very similar in use. You plug the modules into the SFP+ port, hope its compatible and let them rip.
I'd start there and if you find you need other features, think about spending more.
If you want to go all-out fast and not need a switch you can use a QSFP+ <-> 4xSFP+ cable or splitter by getting a QSFP+ card on the server end.
Ethernet is more costly, SFP is the more approachable-but-unusual way. Lengths of the runs and how many clients changes the decision making a bit, so keep that in mind.
I didn't mind cost so much but I wanted to stick with typical Ethernet. Mainly a comfort thing, I don't know the limits of SFP well.
I went with this switch: Mikrotik CRS312-4C+8XG
... and these cards: ASUS XG-C100C
I upgraded my home lab to 10GbE around a year ago mainly to speed up my SSD-based backups. All told I think it was about $800 to upgrade my storage cluster and a couple clients.
We support 10G-BaseT as well for devices that are 10G-PoE-BaseT but otherwise standard here is SFP+. Gets even cheaper when you consider power consumption, heat dissipation, and multi-port cards (2xSFP+ NICs are extremely affordable and nice when you have segregated networks or VM hosts).
EDIT: 10G-BaseT also has ~2 orders of magnitude higher latency compared to SFP+ Fiber, and ~1 order of magnitude higher latency than SFP+ DAC. The numbers are small across the board, but it's relevant. 5-10W draw for 10GbE compared to 1-2W draw for SFP+ Fiber, for power consumption numbers.
What am I missing?
Redundancy is an easy way to spend a ton of cash poorly, but if done well I recommend it for anyone!
The virtualization aspect for example, that's just a bullet-point for how I use KVM and some of the fancier gear to prove out certain implementations... then automate using them. Lately, SR-IOV.
For those like me, it's often fairly practical but the trivial stuff may be what gets shared