How do Fibers and Meteor.asyncWrap work?

Is there a way to get the return value from an environment-bound function that is called outside a fiber?

In the Meteor.bindEnvironment docs below it says the return value is intentionally ignored. (what is the reasoning?)

I came across an issue with this when attempting to implement the share-access npm package with a sharejs meteor package. share-access decides whether an action is to be permitted based on the return value of the callback.

I define the callbacks inside Meteor.startup and wrap them with Meteor.bindEnvironment. I’m then able to access the Meteor environment variables but since the bound function’s return value is ignored the callback is of no use.

  shareAccess.allowUpdate( 'collection', 
    Meteor.bindEnvironment( function(docId, oldDoc, newDoc, path, session){
      // decision logic... unfortunately return value ignored
      return true;
    },
    function(err){
      console.log('bind error');
    })
  );

Is there another way to go about accomplishing this scenario?