@mattmagic - The GPIO Init is part of the components.
You shouldn’t modify those files you showed… they’re automatically “generated” and will get overwritten.
Start with app_init and app_process_action in main.c (I suppose equivalent to Arduino’s setup and loop).
The latter should be non-blocking!
I can only try this on GSDK 4.4.6 - I normally use SiSDK 2024.12.2
Let me know if you want some more help… I started a simple outline of steps need to get this going… but then got bored