Creating Symfony command controllers is documented in "TYPO3 Explained": https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/CommandControllers/Index.html
This also includes information about how to run the command from the command line and from the scheduler.
Perhaps it is helpful to link to this documentation in the scheduler docs (for now).
(As often), it is not so easy to decide, what should be in the system extension docs and what in the core manuals, but I would suggest to put the programming related things in "TYPO3 Explained", add links to the sysext docs and vice versa.
What is currently not clear to me: when to use scheduler tasks (TYPO3\CMS\Scheduler\Task\AbstractTask), when to use command controllers (\Symfony\Component\Console\Command\Command). Both can be executed from the command line, both can be executed in the scheduler. Why do we have 2? Will the functionality eventually get merged? (Personally, I have been using command controllers only recently).
I would love to help with the documentation but since I have too many open questions myself at the moment, probably not a good idea.