You didn't assign return value to anything. This will work:
response = exp_backoff 2, status_url
session_token = response['session_token']
Note however that your rescue
part will return different object and response['session_token']
will raise an undefined method error. Maybe you should rethink your method? Most likely, instead of returning exception object, you should simply reraise it:
rescue OpenURI::HTTPError
if tries < up_to
sleep( 2 ** tries )
retry
else
raise
end