Also, when it comes to stability, it seems that some code from testnet4 is also applied into testnet3. And in that case, if you run a new client, then you can get a more stable testnet3. Another thing is that you can get sBTC from official signet, by executing some contracts with OP_CAT: https://delvingbitcoin.org/t/proof-of-work-based-signet-faucet/937/1
Edit: Here you are: https://mempool.space/testnet4/block/0000000006612e6ecc73e171b07c754d566dad6a8c307298afbdc3723d8982e9
As you can see, only 32 leading zero bits are enough, to get a new CPU-mined block in official testnet4. My miner was just lucky, and produced 37 zero bits instead.
By the way, which code are you using for mining? Because when running signet with just OP_TRUE, I could get 50k sBTC, after a few minutes of grinding with Bitcoin Core. Which means, that you are probably running some unoptimized Python code in interactive mode or something, because getting a block with 20 leading zero bits every three minutes is something, which could fit the old Satoshi's prenet from 2008.
Regarding the unfriendly aspects of testnet3/4, I have already replied ON https://bitcointalksearch.org/topic/--5501712
About the mining code, I used the signet mine program provided by bitcoin core, which is written in python, but I made some modifications, and after complete testing, I will open source it.