2nd question:

Is there a efficient way to add 2 compressed keys, or would uncompressing, adding and recompressing them be the way to go?

I think you will have to uncompress the keys, in other words calculate the y values of the points and then select the correct signs (from the compressed key information). Then you can add the two keys correctly.

Once you have added the two keys together then you can use the point as is or, if you wish, compress it again.