Yes, you are describing almost exactly the issue of starting additional threads I described in this topic last year.
It’s difficult for vexos to solve this automatically as there are programs where the user may expect this behavior, so we leave it to the user to manage threads beyond the two default competition started ones. It’s also quite viable to skip using our competition class completely and monitor the competition status directly (well, you need the class to do that but you can skip registering the auton and/or driver threads) or handle the events in a different way (for which I would have to provide some additional documentation on how to do that).
When we created this back in 2017, we made the behavior more or match what would happen with cortex. If a controller is connected then driver will always run when field control is not connected, I felt this was more useful as it allows driving practice without needing a competition switch or moving the code to a non-competition template.