Hi Pedro,
I'm sorry for the slow reply. (Sometimes they make me prepare lectures and stuff.)
My main recommendation is to use last-split, which seeks a unique best alignment for each (part of each) read. That will reduce the output size.
I recommend not using overlap mode (except maybe in some very special situations). In practice it usually gives inferior results. Maybe the documentation should try harder to advise against it.
It's for non-error-corrected reads, so for your case it will be unduly slow-and-sensitive.
I'm not familiar with your data, so the following is guesswork:
I would use the "without repeat-masking" DNA recipe at the above link.
I would add -k50 to the lastal options. Crudely speaking, this makes it 50x faster and 50x less sensitive. But I guess sensitive enough for you. (50 is a total guess: you could experiment with -k20, -k100, etc.)
I might add -C2 to the lastal options. This reduces the slowdown caused by unmasked repeats. But this option is recommended only if the indel rate is not too high.
Your idea to set a minimum match length is good: it has a similar effect to -k50, but the latter tends to be more effective.
As for the bad "$" symbol: your sequences should contain only a, c, g, t (and maybe ambiguous letters like n). Apparently there is a "$".
Have a nice day,