Currently, changing skins directly within the Timeline in Spine is not a built-in feature. As you mentioned, the common workaround is to key an event in the Timeline and then handle the skin change through code at runtime. This method, while functional, is indeed less convenient than having a dedicated feature for skin changes within the Timeline.
There have been discussions and feature requests regarding this functionality, such as the issue on GitHub for Skin change keys. However, as of now, this feature has not been implemented in the Spine Editor. The complexity and demand for this feature are acknowledged, but it seems it has not yet been prioritized in the development roadmap.
For now, the best approach remains to use events and handle the skin changes via code. This method ensures that you can dynamically change skins during runtime, even though it requires additional coding effort.