We ran into a similar problem where logos were always showing up on our invoices if the invoices were generated "on demand" by clicking on something within Blesta, but they would not show up in automatically generated invoices.
The component of Blesta that generates the PDF files appears to be expecting an absolute path to the logo file, however it is only actually receiving a relative path. So, unless the working directory of the cron job is the directory in which the Blesta install resides, the problem will occur. In our hosting environment, the working directory of a cron job is, by default, one level higher than the directory where Blesta (or any other website) would reside. We fixed this by wrapping the cron job in our own shell script that does a cd to the proper working directory just prior to executing the cron job script.