How are the unlocking script + locking script executed?
This appears to be a bug in BitcoinIDE. The issue is that it is computing the hash differently from what it actually is. Because it finds a different hash, the comparison that checks that the hashes match (the OP_EQUALVERIFY) fails.
However the hash does match. If you compute the hash manually, you get a different hash than what BitcoinIDE is showing.
Using the btcdeb project, I am able to execute this script and step through all of the opcodes correctly.