Park() application has a blocking bug

I have a situation where I would like to continue executing priorities after Park() if the call is neither unparked nor reaches its timeout context. However, Park() seems to have a bug. In the aforesaid scenario Park simply never returns. The timeout context is never reached (because it never timed out), but neither are any of the priorities after Park(). One example of when this happens is when the parkee hangs up before the timeout. Park() never returns!

I 100% need to be able to handle that scenario or my bookkeeping of available/taken spots is ruined. Is this a bug? If not, how can I handle the scenario?

Below is the context in question. It is routed to in my main routing context:

;   This context manages parking of calls and 
;   access to the parking lot.
  include => parkedcalls  ;none of the features.conf stuff seems to work so this isn't really necessary
  exten => _700, 1, NoOp(=-=-=- ${EXTEN}@${CONTEXT} -=-=-=)
  ;Check out a free parking spot and associate it
  ; with a given account, then park it:
  exten => _700, n, Set(PARKINGEXTEN=${VOIP_GetAvailableParkingSpot()})
  exten => _700, n, Set(VOIP_DeleteAvailableParkingSpot(${PARKINGEXTEN})=)
  exten => _700, n, Set(VOIP_AddParkedCall(${PARKINGEXTEN},${HASH(account,id)})=)
  ; Here is where the problem is:
  exten => _700, n, Park(45000,call-park-timeout,${PARKINGEXTEN},1,,)
  exten => _700, n, NoOp(Nothing after the above park ever gets run.)
  exten => _700, n, NoOp(Either the timeout context is routed to)
  exten => _700, n, NoOp(or Park() flakes out and never returns.  Bug?!)
  exten => _700, n, Hangup()

Any/all info is very very much appreciated. Thanks.