If you choose to go the Asterisk route, you have multiple options. You could add a remote extension as you mentioned. You could also simply call a remote number as part of the ringgroup. This would either require another pots line or a VoIP call with an outbound provider. That remote number could be any phone. (The existing phone, a cell phone, etc.).
If you want to go all VoIP, you have a lot of options to setup with a hosted solution. Many plans would allow you to have a couple of phones on the same number and who ever answers first ‘wins.’ Or you can look for a hosted provier that will give you individual extensions at each site and the ability to do ringgroups and similar. It’s a decision of if you want to go all VoIP or not and then how much you want to pay vs. how much you want to learn and burn your own time making it work. The Asterisk solution will probably be the cheapest and offer the most flexibility, but will require time to learn or pay someone to setup and maintain for you.
As far as the FXO card - you don’t want to get a cheap one. If you are cost sensitive, get a Siprua SPA3000 and use the extra FXS port with your existing analog phone instead of getting a sip phone. (btw - you might be able to do everything you want with a Sipura SPA-3000 and a sip phone or ATA at the remote office. Could be you could do close to everything you want with the Sipura and a sip phone or ata at the remote office. If you could, it would probably be the cheapest and easiest to maintain - but the hardest to get up and running.