Yes, this is a common problem we see a lot of. The built in PayPal Standard is supposed to be updating based on the IPN that comes, but we do see this where it simply doesn’t. We’ve never looked much into it because we’ve handled it differently.
First, I would recommend that you switch to our plugin, at least for Express Checkout. This will give you a lot more features and functionality than the built in PayPal Standard provides, including the ability to add PayPal buttons to your product pages and cart page so that people can skip the WC checkout page. This leads to increased conversion rates. It also includes PayPal Marketing Solutions functionality which can further lead to increased conversion rates and also increased avg. order totals.
Now, more related to your issue, rather than build a limited feature-set for IPN into this plugin, we built a separate plugin: PayPal IPN for WordPress. This plugin turns your site into an IPN listener that could be used as a catch-all, and it provides lots of hooks based on transaction type and payment status so that you can trigger your own functions to do anything custom you need to do with IPN. This is very powerful and could be used for all sorts of purposes. We have a guide on how to update the WooCommerce order status using this plugin that would your issue. If you’re using PayPal Standard, though, it would conflict and would not allow our IPN to trigger.
So switching to our plugin with Express Checkout, adding our IPN plugin, and following the quick steps in that guide would resolve your issue.
Beyond that, I would recommend you switch from Stripe to PayPal Pro, which is supported by our plugin as well. PayPal Pro does not have any delays on access to your money like Stripe has, and it will also give you cheaper transaction fees if you’re doing $3k+ in volume. If not it would be the same fee. PayPal Pro does have a $30/mo fee, however, if you’re using our plugin we can get that fee waived for you.
Plus, we have better support than most others. ??