A simpler approach might be to move where you add Daniel’s code to SimplePages. Instead of putting it at then end of the hookDefineAcl() method, put it right above this line:
$acl->deny(null, 'SimplePages_Page', 'show-unpublished');
Chances are the ACL gets to the deny statement and follows that rule to deny access, without ever getting to the added allow rule. So, putting the allow above the deny might do the trick. (Zend ACL is often a little weird to work out).