If I read the OP correctly, the 301s have been done, and that should take care of the situation eventually....
However, even though there is a new sitemap.xml, and a .htaccess handling all the 301 redirects, Google is still showing the old .htm pages in its index along with the new .php pages. Everything I read says this could carry on for quite some time.
Several questions...
- how long ago did you apply the redirects?
- what is returned when you enter the old urls?
- have you checked the redirects with a server header checker?
- what are you listing on your sitemap?
To double-check various...
Your sitemap should show the canonical form of your new urls only.
When you type in your old urls and hit enter, you should see the new ones.
When you check the old urls in a server header checker, you should see the 301 redirects, and the new urls should return a 200 OK response.
When you check the new urls in a server header checker, you should get 200 OK responses.
Regarding the question of
Google dropping the old .htm pages , here's a good reference thread that involves redirects that include a domain change. An extension change without a domain change would be quicker, but the old extensions might show in the serps for a while....
Domain 301 Redirect - How Long to Change the Index? Sept 2012 https://www.webmasterworld.com/google/4499653.htm [webmasterworld.com]
I would consider what g1smd says here gospel...
New one should appear in days.
Old one can take months to drop out. This is not a problem.
Do check your page code to make sure that all your nav links have been updated.
Note that what's in Google may hang around for a while. If everything else is OK, that shouldn't be a problem.
Note also that Google will periodically come back to check for the old urls for years. As long as your redirects are working properly, that should not be a concern.
Do
not use the Remove Outdated Content option in the Google Search Console. Do
not use 410s.
If you're sure your redirects are working, and that there are no extra hops in the redirects, just do nothing....
3) Do nothing. Just wait for Google to drop the old .htm entries from the index in its own good time.
Actually, you might also want to check your backlinks, and ask some of the sites you know that link to you to change the old urls if they can.