Eu acho que a razão pela qual a adição de uma penalidade L1 torna as coisas significativamente mais lentas é que uma penalidade L1 não é diferenciável (ou seja, valor absoluto), enquanto a penalidade L2 é. Isso significa que a superfície da função não será lisa e, portanto, os métodos quase-Newton padrão terão muitos problemas com esses problemas. Lembre-se de que uma maneira de pensar em um método quase-Newton é fazer uma aproximação quadrática da função e, em seguida, a proposta inicial terá o máximo dessa aproximação. Se a aproximação quadrática corresponder razoavelmente bem à função de destino, devemos esperar que a proposta seja próxima do máximo (ou mínimo, dependendo de como você olha o mundo). Mas se sua função de destino não for diferencial, essa aproximação quadrática pode ser muito ruim,
Se você encontrou um pacote R que implementa as penalidades de BFGS para L1, tente fazê-lo. BFGS, em geral, é um algoritmo muito genérico para otimização. Como é o caso de qualquer algoritmo genérico, haverá muitos casos especiais em que isso não ocorre bem. Algoritmos que são especialmente adaptadas para o seu problema claramente deve fazer melhor (supondo que o pacote é tão bom como ele é autor afirma: Eu não ouvi falar de lbfgs, mas há um monte de grandes coisas que eu não tenha ouvido falar. Atualização : I usei o pacote lbfgs do R e a implementação do L-BFGS que eles têm é muito boa! Ainda não usei o algoritmo OWL-QN, que é o que o OP está se referindo).
Se não der certo, tente o método "Nelder-Mead" com o otim de R. Ele não usa derivativos para otimização. Como tal, normalmente será mais lento em uma função suave, mas mais estável em uma função não suave como a sua.