Jack buffer size and FFT frequency resolution
As a general rule which is easy to remember: The frequency-domain resolution of a FFT does only depend on the time-duration of your signal (this rule also works when you do zero-padding of your signal). The resolution is always given by $1/T$, where $T$ is the duration of your FFT window in seconds. So, in your case your frequency domain resolution will be $1/(1024/48000)=46.875\text{Hz}$ as you have pointed out. Hence, if you want to get better frequency resolution with an FFT, you need to have longer FFT windows. You can use zero-padding to reduce the frequency bin distance, but this will not buy you more frequency resolution. You can have a look at this article I wrote about FFT resolutions, zero-padding and other effects.

However, note that you should not use the FFT to perform filtering of a streaming signal: reference 1 reference 2. Instead, you should perform time-domain filtering with a FIR or IIR lowpass filter. Then you have less delay and would also not need to concern about frequency domain resolution. Let me know, if you need an example on how to design such filter in Python.