allow handle_result to change the result and exc_info

if serialisation fails we set `result` to `None`, but should now probably also set a new `exc_info`. need to take care if it's an existing exception we fail to serialise to try to keep as much info around as possible (can't wait for py3...)