Since you are changing the playback rate I am assuming you are using my fork. Are you loading the files asynchronously or not because I pulled in the CLOUDS guys changes to my fork but you can flag it to load asynchronously or not , it doesn't by default.
ObviousJim's approach is actually a pretty good way but since you only have 18 short videos you might just want to buffer them all into memory by having 18 video player instances. That way you never have to reallocate memory and the player instances persist between playbacks. You can just load them into a vector/array and however you choose to playback the videos just draw the currently playing ones. Other than that you can start playing the background movie a little before the switch and then set its position to 0 right as the new video is drawn. Essentially priming the decoding buffer.
Careful with setting the playback rate too as there are actual limits to the playback speed, if you are't getting a warning you are fine but Media Foundation does a check for supported playback rates during the rate transition and if its not supported without thinning will log an error and fail to change speeds. I would also generally recommend against thinning as it essentially drops a bunch of frames in order play at the requested rate, seems to be the only way to get it to play in reverse though which kinda sucks