Just a thought: it may be an option to not use the audit trail component at all. Personally i try to avoid tusing it because of the performance impact: it always logs while there are always quite a lot of changes in objects that are not interesting to log at all like boolean fields for internal use only.
You can easily create an auditlog entity yourself and then create logentry object at the moments that really are worth it. You have full control in that way.
That behavior is by design. Check out this line in the quite elaborate documentation-tab on executeMicroflowInBackground hava-action:
“Note that since the microflow is run as system transaction, $currentUser is not available and no security restrictions are applied.”
I have not tried this myself, but maybe you can use the contaxt object, to pass along the user, and trigger the executeMicroflowAsUser.