At first look, this is not about async processing, but only suspending the transaction before doing the rtpproxy control command. There is no passing of a task to some async worker, nor resuming the transaction.
Practically your code does something like:
``` t_suspend(); rtpengine_offer()/_answer()/_delete(); ```
Maybe you can just to use `async_task_route()` for INVITE:
- https://www.kamailio.org/docs/modules/stable/modules/async.html#async.f.asyn...
And use the rtpengine functions in the target routing block. It looks like what you want to implement inside rtpengine module, but you can achieve that by using async module.