If you don’t want to use Strava, perhaps this could be for you? I haven’t tried it myself, but it sounds interesting: https://github.com/joaovitoriasilva/endurain
As for cycling computers, I’ve only used Garmin (Edge 840) and Wahoo (ELMNT Bolt 2), neither of which I’d really consider “hackable”, but with Garmin at least it is possible to create custom apps and data fields and if you connect it to a computer via USB I think you should be able to access the .fit files, courses and other files via MTP (this may also be possible with Wahoo, not sure). I think it actually exposes the entire file system. You can definitely create custom map themes by editing XML files for example which is not a feature Garmin advertises.
Otherwise I would say the difference between Wahoo and Garmin is that Wahoo is simpler and less customisable, but it still does everything important and is cheaper. It’s much easier to set up and get going. Garmin is very customisable (and more expensive), but there are way more settings and menus to navigate and you can spend ages setting it up just right. You also get more fitness tracking features for free out of the box through Garmin Connect (though it’s worth noting they recently pissed everyone off by adding optional subscription features recently). For me Garmin Connect made Strava completely redundant, since I don’t care about the social features. The data is still hosted on Garmin servers though.
And of course there are other brands too that I haven’t tried. Perhaps check out DC Rainmaker on Youtube. He has reviewed lots of devices by all the main brands.
Yes. It used to show as a USB mass storage device, but a recent update changed it to use MTP (at least the Edge x40 devices). I don’t have my Edge here to check, but I’m like 90% sure you can also access the .fit files and load courses that way. It exposes a bunch of folders, including (I think) courses and activities. It should be possible to simply copy them to/from a computer that way.
This link is specifically about using Ride with GPS with Garmin over USB, but it should still be relevant (there is also a screenshot showing some of the folder structure): https://support.ridewithgps.com/hc/en-us/articles/12212969301147-Manually-Sync-your-Garmin