Hi Ricky,
Based on
this FAQ entry and
Todd's blog post, I think they should get logged for any event that occurs within the session (not just
automatically collected events). I don't know if there are any special cases where some events occur outside of sessions (e.g. maybe first_open or events logged during app init?) but that seems unlikely.
I do see another discussion where a developer reported that a small percentage of events do not have ga_session_id after a user returns from a long period of offline activity (something to do with them getting passed to the server before the app is fully initialized). That one appears to still be under investigation.
Can you try the debugging guide and see if there are instances where the field is not set on the events when they are sent to the server? Also, you may want to file a bug
through support and share some of the logs and timestamps.
☼, Kato