I just upgraded five WordPress sites to SSL, and only one of the five showed any delay with the HTTPS redirect. I restarted PHP-FPM and it made no difference. Then, I restarted Apache, and it didn't make any difference, but within a few minutes, the redirect began working. So I would say PHP-FPM and Apache are not the cause. I am using WP Super Cache on the sites, and tried clearing the cache, too, but that made no difference. I'm not using any server-level caching or Cloudflare.
My original post here was prompted by seeing the delay in redirect taking effect on three plain HTML sites, which, unlike WordPress, don't include their own redirect, which WordPress does when the Site and Home URLs are set in WordPress to HTTPS. So, I went back to one of the plain HTML sites, which has no caching whatsoever, and disabled the HTTPS redirect, then tried to browse to the site using HTTP, and I was still redirected to HTTPS. I restarted PHP-FPM, and was still redirected to HTTPS with the redirect disabled. Next, I tried a virgin browser that had not visited the site since I enabled SSL, and tried to pull up the site using HTTP. I still got redirected HTTPS, so I don't think it's the browser.
I'm going to think about this and see if I can come up with a reason the delay occurs, but I don't think it's worth a support ticket. It's not a big deal; the redirect worked immediately 80% of the time with WordPress sites, and even when it didn't work immediately, it began working after just a few minutes. I will probably never need to use the feature again once it's enabled. I'll just remember that it takes a few minutes to work. I only posted because I was curious about it, and thought it might be inherent in how the redirect is done.
I'm going to use the HTTPS redirect on my sites that have been using an .htaccess HTTPS redirect; I'll just wait a little while before removing the redirect from my .htaccess.