`bitcoind` and `bitcoin-qt` crashes when creating a PSBT with `walletcreatefundedpsbt`

**Expected behavior**

`bitcoind` and `bitcoin-qt` should not crash and users should not see assertion errors on mainnet. Failing gracefully with some error message would be better. Although I was not able to reproduce this issue on Fedora so ideally this should be fixed.

**Actual behavior**

Error in bitcoind:

```
Assertion failed: selected_effective_value >= target, file wallet/coinselection.cpp, line 391
```

Error in bitcoin-qt:

![image](https://user-images.githubusercontent.com/94559964/192375828-d8e6f628-f52c-4aa8-ae99-19c2fe1a4934.png)


**To reproduce**

1. Create bitcoin.conf 

```
signet=1
txindex=1

signet.rpcport=38332
rpcuser=user
rpcpassword=pass

fallbackfee=0.0004
```

2. Add descriptor in a wallet using bitcoin-qt console:


```
importmulti '[{ "desc": "sh(multi(2,[aa130fed]02de62833c851509cf13c0c63e0dc3ef7b74f7d86b17e9090fab68c09830cb2f2e,[00890d8d]03cf11a2bc1371dad3691bce59e37d85b12aae6b030b533d4e7c5aedeb47a5ec0e))#j8w6g6zg", "timestamp":"now"}]'
```

3. Create PSBT using bitcoin-qt, click on different options in the error message and you will notice it creates PSBT with no change by clicking 'ignore' 3 times else crashes with others:

```
walletcreatefundedpsbt "[{\"txid\":\"e911734bf711009dd6057c88bc598df2d31c18d1cc6bd6c790a704b519d77e68\",\"vout\":0}]" "[{\"tb1q9fxp2p0sm93jdlul8v3svzn7x69zcd9ljsgans\":\"0.0009\"}]"

```

4. Close bitcoin-qt and open powershell or command prompt to create PSBT:

```
bitcoind.exe
````

```
bitcoin-cli.exe -rpcwallet=M1 walletcreatefundedpsbt "[{\"txid\":\"e911734bf711009dd6057c88bc598df2d31c18d1cc6bd6c790a704b519d77e68\",\"vout\":0}]" "[{\"tb1q9fxp2p0sm93jdlul8v3svzn7x69zcd9ljsgans\":\"0.0009\"}]"
```

**System information**

Windows 10

Bitcoin Core Master Branch


add_coin(7 * CENT, 7, utxo_pool);
    add_coin(7 * CENT, 7, utxo_pool);
    add_coin(2 * CENT, 7, utxo_pool);
    for (int i = 0; i < 50000; ++i) {
        add_coin(5 * CENT, 7, utxo_pool);
    }
    const auto result8 = SelectCoinsBnB(GroupCoins(utxo_pool), 30 * CENT, 5000);
    BOOST_CHECK(result8);
    BOOST_CHECK_EQUAL(result8->GetSelectedValue(), 30 * CENT);
    BOOST_CHECK(EquivalentResult(expected_result, *result8));
    
    
    
    
    utxo_pool.clear();
    for (int i = 5; i <= 20; ++i) {
        add_coin(i * CENT, i, utxo_pool);
    }
    
    for (int i = 0; i < 100; ++i) {
        BOOST_CHECK(!SelectCoinsBnB(GroupCoins(utxo_pool), 1 * CENT, 2 * CENT));
    }
    
    CoinSelectionParams coin_selection_params_bnb{
        rand,
         31,
         68,
         0,
         CFeeRate(3000),
         CFeeRate(1000),