I'm going to have to say google is too slow.
Your best bet is to go into Google search console, access your domain within it, then select the gear icon and then site settings, then for crawl rate, select "Limit Google's maximum crawl rate" and select the biggest crawl value by moving the slider all the way to the right. Then google will make up to 2+ requests per second. If you're lucky it might even allow you to choose 10 requests per second.
When you allow Google to make maximum requests, then it will scan your pages faster and find the no-index tags much faster than before and the waiting time for results will likely be lower.
In either case, I suggest waiting about a day for results. Here's the math that explains it.
3000 ... You applied a no-index tag to 3000 pages.
+15000 ... You applied a 301 redirect to 15000 pages.
------
18000 ... Total modified pages
/ 0.2 ... (divide by google's default scan rate of 0.2 pages per second)
------
72000 ... 72,000 seconds waiting time which is 1,200 minutes or 20 hours.
Now if you crank up the setting to 10 requests per second and google does 10 requests per second, then here's your new math for the waiting time for results:
3000 ... You applied a no-index tag to 3000 pages.
+15000 ... You applied a 301 redirect to 15000 pages.
------
18000 ... Total modified pages
/ 10 ... (10 requests per second)
------
1800 ... 1,800 seconds waiting time which is only 30 minutes.
site:
search can certainly return the source page of a redirect, which would not ordinarily show in a normal search. Not sure about thenoindex
pages though? Have these, at any time, been blocked withrobots.txt
?