Right, very much so! I think this is a basic requirement for runtime to be able to expose such metrics.
We have made the first step towards this last year, but we've not done the second one yet: hooking up swift-metrics to the hooks we've prepared.
Basically, we have the following "hooks" prepared in the runtime already: https://github.com/apple/swift/blob/main/stdlib/public/Concurrency/Tracing.h
Here's two interesting examples:
void task_wait(AsyncTask *task, AsyncTask *waitingOn, uintptr_t status);
void task_resume(AsyncTask *task);
By providing implementations of those hooks at runtime, we should be able to provide a bridge from such tracepoints, into metrics which can be emitted into the globally bootstrapped swift-metrics system. Some of those are actually even potentially useful for tracing, so spans can be emitted between a start/suspend/end of a task etc.
Either way, for emitting the counts you mentioned we'd hook:
void task_create(AsyncTask *task, AsyncTask *parent, TaskGroup *group,
AsyncLet *asyncLet, uint8_t jobPriority, bool isChildTask,
bool isFuture, bool isGroupChildTask, bool isAsyncLetTask);
void task_destroy(AsyncTask *task);
void actor_create(HeapObject *actor);
void actor_destroy(HeapObject *actor);
I have initially reached out to some folks a while ago about how we could do this, but we've not dug deep just yet. Generally I think we'd either want to surface some library which does the hooks and offers some protocol that users can implement to handle these, or some simple pre-defined swift-metrics integration for things like task, actor counts etc.
Basically it boils down to providing implementations of those C++ functions, so perhaps actually just a swift package which does that might be good enough! 
// cc @harjas @Mike_Ash @tomerd