I know this is an old thread, but I, too, have been experiencing CW not stopping at the end of a song.
I tried all the solutions I could find on new and old message boards, and nothing seemed to work.
I just started working on a new song, so rather than start with a previous song as a "template", I saved out all tracks as template tracks and brought them into my project individually, checking if CW would play for each group I brought in. Nothing played (as expected) because there was no MIDI or audio data in the project.
Next, I created a 4-measure open 5th chord for my ambient pads. I stretched it to cover 4 measures and made it a loop clip. I had it in just the first of my 5 ambient synth tracks. I clicked "Play", and it played for 4 measures and stopped. Cheered on by this minor victory, I copied it to each successive track and tested. It stopped until I got to the fifth and final ambient pad track. When the loop clip was copied to that track, CW kept on playing, even though there was no note data, no special data, no automation, no anything!
At that point, I deleted the clip from that track and re-tested, and CW stopped at the end again. After that bit of verification, I split the track into the synth and MIDI tracks to see what was up.
After removing the audio FX (one at a time and re-testing each time), and getting nowhere, I looked at the MIDI track, and there was the Cakewalk FX Arpeggiator in the track FX box. I deleted the arpeggiator and re-tested, and CW stopped at the end of the song! After an undo, I simply turned off the arpeggiator and re-tested, and CW likewise stopped at the end of the song.
I tried attaching the CW FX Arpeggiator to the loop clip instead of to the MIDI track, and I got arpeggiation without CW fritzing out and trying to play beyond the end of the song! HOWEVER! While this avoids the problem with not stopping at the end of the song, it is a pain to have to attach the FX to all my loop clips on that track, or having to bounce the whole bit to a single clip and apply once, and hope I don't need to change anything.
Ideally, CW would just stop at the end, regardless of having the Arpeggiator FX attached to the track, but at least there's an identifiable reason that isn't "Just delete the invisible data beyond the end of the song." : )
Hopefully, this bit of info will help BandLab figure out a real solution, and will help other CW users not pull out their hair in the interim.