Seems to be fixed!

Right, the main change here is that if the block doesn't push the player enough, if gives it a little extra nudge. This seems to have fixed all issues, but it seems far too simple and I'm waiting for it all to come tumbling down.