It's a bit later than I anticipated, but I've settled on a very basic gpio control library for the time being, I tried a few different things but ran into issues specific to Python relating to global data only being global to the particuar script and not the set of scripts (as in the program as a whole) and also a few different ways of waiting for subprocesses to return before threads continued to control flow a little better. I'm sure what I want to do to move it forwards is entirely possible but at the minute, I want to move on to memory mapping the LCD screen, so I've reverted back to my very basic xgpio for the time being.
Once I'm finished working out memory mapping the screen and using the other onboard peripherals (I2C etc..) I'm panning on returning back and changing the library to include memory mapping the pins too.
If anybody's interested in using it I've attached the library, an example script and a readme.txt to get started. It includes a pinwatcher class that runs in it's own thread and watches for pin events, button presses etc allowing your script to continue running as normal.
My next blog post will be about my experiences using the lcd for more than just displaying a pre made picture file.