I assume that you are using a custom preloader?
You basically have two problems, one is to detect if a GIF has finished playing (not a PlayCanvas problem and if you know how long the GIF is in seconds, you can just use setTimeout())
The second problem is to ‘start’ the PlayCanvas on demand vs it telling the preloader to hide the splash screen. There is thread here that will help: Delay Loading Screen