Why is Log File Auto Grow sometimes performed by my application user and sometimes by sa?
Whichever transaction requires additional log space will grow the log file within that transaction, so it can complete.

So if userA is performing a bulk load of data and uses up all available space in the log file, you will see a growth event for the log being called by userA.