Let the user decide when a `&mut dyn self` is created
If callbacks are async and &mut dyn self is created before calling user function, all other functions depending on the same object will be blocked until this function is done
To solve this:
- Makes diff between async and non async functions
- If non-async: resolve before function call
- If async: don't resolve and provide a macro to create it
Or: Let the user create it anyway