Two Bitcoin Core details worth adding, straight from its source and release notes:
- "Wait days" has a limit. Core's default mempool expiry is 336 hours (DEFAULT_MEMPOOL_EXPIRY_HOURS in src/kernel/mempool_options.h), so an unconfirmed transaction drops out of most nodes' mempools after 14 days, and low-fee ones can be evicted sooner if the mempool fills. When that happens the coins were never spent: they're back in your wallet, though the wallet may keep rebroadcasting the old transaction until you replace or abandon it.
- RBF works on more transactions than it used to. Since Bitcoin Core 28.0, mempoolfullrbf defaults to 1, so nodes accept a higher-fee replacement even if the original didn't signal BIP125.
And CPFP only works if you control an output of the stuck transaction (your change, or the coins you're receiving), because the child has to spend it.
