There really aren't any beginner friendly subsystems. Read the LKML archives for several subsystems and see if you like anything. If you find something, then you start following that mailing list and start studying that subsytem code. Look at bugzilla and see if you can find something simple to fix. (Not all subsystems use bugzilla)
Learn to use syzkaller. That's important. Work on those issues. Even if you can't fix an issue, it will expose you to the subsystem.
Look for a simple patch where you understand what the issue was, ideally replicate the issue on that kernel version. Then implement the patch code and understand everything about what was done and why. Do this repeteadly, if you find enough such patches.
I don't want to discourage you, but it's tough as a hobbyist. There is a reason why almost all contributors work for companies where they write kernel patches for a living. They are exposed to real world issues, they have to make clearly defined enhancements, and usually they work in teams where they can get mentored in the beginning.
Another option is to write a driver. It doesn't expose you to a subsystem, but at least you go beyond checkpatch.pl and you become the maintainer for that driver.
You could look at the TODO in all those directories in GKH's tree. (maybe you are already aware of this)
https://web.git.kernel.org/pub/scm/l...rivers/staging
When you read the mailing lists, you see people who contribute regularly somewhat complex patches, and they still get corrected by the maintainers. It's a deep well and it takes time and perseverance. As a hobbyist, success is not guaranteed.