fee ranges is usually in msat/kw rather than sat/vByte, I guess that's why your fee range argument didn't work as expected. in your command, you provided a fee range of 45,50 thinking it was in sat/vbyte. however, the lightning network uses a fee rate in msat/kw. so the range you specified was interpreted as 45msat/kw, 50msat/kw.
Here is the output from lightning-cli:
# Sending closing fee offer 171sat, with range 171sat-171sat
The output from lightning-cli indicated that it received your closing fee offer as 171 satoshis and interpreted your fee range as 171 msat/kw to 171 msat/kw and this resulted in the warning message stating that the closing fee range must not be below 2683 satoshis.
seemed stuck there, then I restarted lightningd and I saw this:
performing quickclose in range 1697sat-7564sat
State changed from CLOSINGD_SIGEXCHANGE to CLOSINGD_COMPLETE
When you restarted lightning-cli it performed a quick close with a fee range of 1697 satoshis to 7564 satoshis and the resulting fee rate off 20.98 sat/vByte was just insufficient.
what happened exactly and how should I specify the fee rate in the future to avoid this?
You can convert between sat/vByte and msat/kw using the formula
msat/kw = (sat/vByte * 1000) / (weight / 1000)
just make sure to specify the fee range in the correct unit, which is msat/kw and by doing this you should be able to close the channel with the desired fee range