Your idea is definitely doable but requires a lot of knowledge on BLE, iOS/Android app development, and BlueZ (Bluetooth stack on Linux). My first recommendation is not to use classic Bluetooth at all (RFCOMM) and instead use Bluetooth Low Energy (BLE). The reason is that with classic Bluetooth there are limitations on iOS and a lot fewer resources than what currently exists for BLE.
As for your specific questions:-
What is the best practice to create something like this?
You will need an iOS/Android app that acts as a BLE central (i.e. responsible for scanning and initiating BLE connections). This app should also act as a GATT client (i.e. read data data from remote GATT servers.
You then need to use the BlueZ commands in a shell script or use the BlueZ C API to write and compile a program for your Linux machine/gateway. The Linux gateway should act as both a Central/Peripheral device (i.e. advertise and accept incoming connections as well as scan and make remote connections), and should also act as a GATT Client/Server (i.e. read data from a remote GATT server and also host the read data in a GATT server locally).
The sequence of operation would for the Linux program/script to start scanning for the specific devices on boot up, then connect to them and read their data using GATT operations. Once the data is read it will host the data in a local GATT server. Also on boot up the Linux machine needs to advertise itself for remote connections. The iOS/Android app can then be used to scan for the remote Linux device, connect to it, and read the data from it using GATT commands.
How stable would this be?
This will have good stability without an issue, but it all depends on the number of connections and the amount of data you want to send per transaction. A lot of BLE devices allow at least 8 connections and if your number is within this range then there shouldn't be any issue.
If is make simulated RFCOMM in linux can i have more that 1 connection open?
You can have more than one RFCOMM connection on Linux, but you will find very limited resources on this as BlueZ has not been used extensively for RFCOMM. Moreover I believe iOS apps don't support RFCOMM or there is maybe very limited support so you'll run into issues there.
Some references that may be useful to you:-
I hope this helps.