You should be able to monitor perfmon counters directly by using oneagent plugins. You even should not need to write python code. You will just need to write the plugin.json file to collect the perfmon counters you need. This can be tricky, but you can get inspiration from plugins that come with Oneagent.
For sysstat/iostat you should also use oneagent plugin and do the collection in the python code. You also can use
Just one note - unless it has been generally enabled, you can't see custom metrics sent to host level (entity: "HOST" in plugin.json). There is a feature flag for this, that must be enabled by Dynatrace DevOps team. Until enabled, metrics can be sent, but you will not see them in Dynatrace. Maybe @Jakub M. will provide more info if this has been enabled for everyone.
More info here: https://dynatrace.github.io/plugin-sdk/
Custom plugins (the API) is definitely supported by Dynatrace (the API is there for at least a year, bundled plugins are also using this API), however, your code is of course not supported (by Dynatrace).
I don't think collecting "any" arbitrary iostat/perfmon counter will be available at all. That's why there is plugin sdk.
@Ynias R. if your metrics really are not included by OneAgent (unless they are not specific to your apps or environment, then they are probably already collected), then at the moment you can have at least two options.
Personally, I would recommend the OneAgent extension. However if you need it for one or few hosts, it might be easier to collect and push the metrics using your scripts or 3rd party tool.