Although it's not possible to change the endTime of a Challenge once it has been set - you would need to start a new Challenge with the correct endTime - one possible workaround to this might 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.