Connection parameters are always decided by the master or the initiator or the central. The peripheral can just indicate the parameters it is comfortable with but the entire power lies with the central. It can choose whatever connection parameters it wants to, without considering the params suggested by the peripheral.
You can send a connection parameter update request to change the parameters.
The "best" way would be to have a static connection parameters, but with varying clients, then you will need to adjust your code to handle various connection parameters as yssu said above. Also of note is the "slave latency" setting in the peripheral/central (I forget which side had it), but it will allow that number of missed connection windows before assuming the other device disconnected. If your connection parameters have a really short window, then the number of missed windows might be higher for you application (due to EMI, noise, interrupts, timing, etc.). This means that to get a fixed time for the timeout for connections, you will want to increase the slave latency proportionally based on how short the connection parameters are.