Note that core.async still uses a real O/S thread for dispatch even with patching the main pool to use vthreads.
And today we'd expect to use core.async more for CPU-bound tasks and not for I/O-bound tasks, whereas vthreads are optimized toward I/O-bound tasks -- so there's an inherent tension in simply patching core.async to use vthreads.