This has plagued us for years. We send quite a lot of transactional email (about 150k emails per day), and there have been several times where Microsoft blocked our server. Usually it is because Microsoft has banned an entire netblock, that our server just happens to be sitting in. I have seen them do this to IPs fro Hetzner, Linode, Amazon AWS (SES), etc. And yeah we've signed up for their junk mail reporting service, and we have all our DNS records dialed in perfectly.
I even went as far as signing up for Azure, in the hopes that if I sent from a Microsoft IP it might not get blocked. But I didn't make it very far, every step of the way was like watching paint dry while the interface loaded or did something. Once I finally got the thing set up in order to send mail, the API was so molasses slow that it couldn't handle our mail throughput. Meaning it would take about 30 seconds to send each transactional email because of how slow their API is. Well that's only 2880 emails per day, that is not a reasonable send rate at all.
I have even lost customers over this mess, it's really hard to explain to them that they can't receive our email because of their provider and not us. Especially when Microsoft has the audacity to return: 250 OK Email Queued (but then not deliver it anyway!)
If anyone has any solutions to this mess I am all ears!
It's almost certainly because your customers are reporting your emails as spam by moving it into the junk folder which is training their systems.
Once enough of your customers do this to cross a certain threshold, you are identified as an undesirable sender and QED.