Optimized 2D wavelet transform using FFT
I'm still not convinced you are spending your time optimally. Probably you would get better gains doing other optimizations. Already 10-15 taps are considered very long wavelet filters for most applications that I have seen. But nevermind that I will try and answer your question.



You can do two different approaches


You could do it one level at a time.
Everything at once.


There are drawbacks and gains from either of them. I will start with the first one.

If you go for one level at a time:


You zero pad filters to be equal lenght as the rows and columns. Also make sure you pad so the filter gets in the middle.
FFT the padded filters and corresponding image dimension. If width $\neq$ height you would need to do 2 FFTs per filter one of each dimension length.
Pointwise multiplication of the FFTs of filter and image.
Inverse FFT of the product image.
Downsample product image in the dimension you transformed.
Repeat for the next dimension.
Repeat for all levels.


Notice that this approach will involve a set of iFFTs and FFTs at each level. That would be double-bad.

The everything-at-once approach: 


Same as above but instead of iFFT and decimating each level to just FFT back again on the decimated signal you just multiply several times with the filter and do iFFT and decimate 2,4,8 times et-cetera. Then you only need to do one set of FFTs (at the start) but still a full set of iFFTs for each level.


Also the multiplications while in the Fourier domain will be more computationally expensive than ordinary multiplications as the fourier components will be $\in \mathbb{C}$ but filter and image coefficients $\in \mathbb{R}$ ( I guess ) and you would also likely need higher numerical precision to get the same error.