CAN transmission of message
The CAN standard doesn't require you wait. The CAN hardware controller takes care of collisions.

Perhaps your own CAN protocol needs delay in-between messages? You did not specify the application.

If you need to know if the message left the CAN controller you use, check the manual. There is a status bit or interrupt option when the message actually left.

Lastly, there should be no while (1) loops in embedded design. Execute your main loop forever, and your sending routine can check if the message left (and do what you need to do), then immediately return to the main loop so other functions can execute. Read on using a state machine style of programming, which is great practice, unless you use real-time OS like FreeRTOS.