I think it is caused by accessing manager (WorkitemManager) in your async handler after transaction was committed. You need to use session instead of the manager in async approach. So when registering handler on the session make sure that you inject session into handler too and to complete the work item use:
session.getWorkItemManager().completeWorkItem(...)
HTH