use Promise.resolve instead of Promise.cast
another aggressivelyAgnostic test
promiseExtender
wait, errorTimeout, timeoutAfter
rename aggressivelyAgnostic -> agnostic