workaround the seal on Promise objects breaking cancel on timeouts