While it is not possible to change the endTime of a challenge once it has been set (In this case you would need to start a new challange with the correct endTime), one possible workaround to this may be to use a scheduler to schedule a module that will send a challengeWonMessage to run in X number of days, where this period will need to be specified in seconds.

If the next player takes their turn within the allotted time, re-schedule the same scheduler to execute again in X number of days. Utilizing the challenegInstanceId as a key value within the Spark.getScheduler() will allow you to reset the same scheduler consistently until the desired outcome is achieved - that is, the allotted time has expired and a challengeWonMessage has been sent, or the desired outcome of your challenge has occurred.