Answer
If only the background job itself needs to run as the app owner (not the whole session), post it using the overloaded Transaction_SYS.Deferred_Call variant that returns the ID of the newly created background job, then directly update the USERNAME column in TRANSACTION_SYS_LOCAL_TAB to the app-owner username (IFSAPP) for that specific job ID. This reassigns just that one background job's execution identity to the app owner without needing to impersonate the user for the whole event/session.