Most things which require a phone number block any kind of virtual number service since the only reason they are asking for a phone number is anti spam and KYC.
I tried to make the softphone approach work but I was unreachable far too often when Android decided to kill whichever softphone app I tried.
And if it did keep running, I'm pretty sure it consumed decently more energy than a dedicated telephony module. And yeah as mentioned, even with a "real" local phone number ported to voipms, I wasn't able to get sms codes from some services.
As a bonus, your phone number wouldn't be bound to that device, but instead would exist everywhere you can install the same softphone app.