Callback scheduling: C callbacks only schedule Haskell code to run later, to avoid potential Haskell exceptions in C callback context

fix #37