I managed to figure out how to edit and compile the drivers, and added a small line explicitly opening the RTS line and tested with Ekos, and everything works as it should. Im assuming its somehting to do with how the kernel handles opening and closing. On Python, opening the port sets RTS line high, but on close doesnt set it low and thus the camera keeps holding the shutter open. In C++ same thing happened, and had to physically set the RTS high and low to start and stop the exposure before closing the port.
Ive forked my code on the git page, if youre interested in seeing it.

Read More...