Thank you sir! That does work. I followed the steps from your link. I'm able to send on-demand email (e.g. resending invoices. For unknown reason, somehow using smtp, it kinda added load on the server but not a problem, I'll figure that out later.
I swapped back to SendGrid option again to run another test by triggering the Cron jobs. Oddly, those automation logs gets sent without any issue. I checked through the activity on SendGrid and it seems like whatever that is meant to be automated e.g reminder, new users, invoices) actually goes out via the SendGrid API. Those emails that I triggered manually will hit an error.
I guess it's what you said, it could have been some bugs that need fixin. 😄