Hi back again
I think 1 and 2 are related to each other- it is about the basic tracing of async executions.
We are planning to address all kind of async scenarios in the near future, so we will have a reference implementation, but you may still use the API to monitor such.
Essentially, a Transaction is not reflecting something running on a thread, but an incoming request. When using all APIs besides the annotations API, a span/transaction will be attached to the thread only if you activate them explicitly.
If your code is forking a task to a different thread, your manual instrumentation could create a span in the initiating thread, then pass the span to the forked thread, where you can activate it and use it. This should allow you monitoring async scenarios.
Just make sure to follow instructions about closing the scope (try-with-resource is recommended), and to add data to each span only when you where you can control its lifecycle (meaning - when you are certain it is not ended already).
If all this makes sense, rethink shutting down the auto instrumentation, maybe you don't need to after all.
I hope it DOES make sense.