This can also be done as a wizard where the user enters the connection speed manually (and then other relevant checks are done during it if needed)
And, if it's feasible, instead of having specific per-determined values for each level of connection speed, there could be an automated system where a setting would be changed incrementally (alone or with other settings) and the effects (on page/object loading time/etc.) would be measured, in order to find the optimal value for each setting/for a group of settings.
Some of the settings for general reference: "network.buffer.cache.size", "..pacing.requests.burst", "..pacing.requests.min-parallelism", "..max-urgent-start-excessive-connections-per-host", "..websocket.max-connections"