Passing data to an block
One method would be to create a central function that you can use to store the object you create, and return it from a static cache when required. That way you only need to create the object once, and other methods in the same page build can pick it up when they need it. 

The function might look like this:

function MYMODULE_new_ticket_cache($new_object = NULL) {
  // Register the static cache with the system
  $object = &amp;drupal_static(__FUNCTION__, NULL);

  // If we've been passed a new object, update the static cache to store that object
  if ($new_object) {
    $object = $new_object;
  }

  // In all cases, return the stored object (if it's NULL, that will indicate the object hasn't been stored yet)
  return $object;
}


When you create your object you would pass it to your caching function like so:

$ticket = function_to_create_new_ticket();
MYMODULE_new_ticket_cache($ticket);


Then in your hook_block_view() implementation you can inspect your cache to see if the object has been set, and use it:

$cached_ticket = MYMODULE_new_ticket_cache();

if ($cached_ticket) {
  // Build up your block content
}