Have you looked at any other methods? I tried Roux when I averaged around 45 seconds, and with 2-look CMLL(you already know the algs, no need to learn more) I soon beat my best time with CFOP, but with Roux(I now average ~22 seconds, and at that point the last steps become dizzyingly fun, especially LSE which is magic.)having the same prob. ive been cubing for 2 months now, and i know f2l and 2- look oll and pll. I don't know how to get faster at F2l, it takes up 30 seconds and my avg is 45.
I also tried ZZ, which is actually really fun, I use it for one handed solving all the time.
because of how ZZ works, you only need 28 algorithms for a 2-look last layer(2nd look of OLL and PLL). More than roux, but still decent.
for anybody(especially F2L ), I would suggest Turbo tracking(look it up, theres a thread on it.) I modified it so instead of <R, U> or <R,L,U> I did <M,U> which helped my LSE lookahead. but turbo tracking was meant for F2L originally.