Sometimes, for a variety of reasons, there will be a spike in the number of BTC transactions that are waiting to be confirmed. That will cause a delay in confirmation times, and increases the price of fees required for a transaction to be included in a block. You can see the current number of unconfirmed transactions here: https://blockchain.info/charts/mempool-count?timespan=1week.
If your transaction was sent with low fees, it can take many hours or even days for it to confirm. Once a transaction is broadcast, it is stored by thousands of nodes all around the world, so it can't be canceled. Eventually it will either confirm, or it will be rejected and the coins will return to your address like it was never sent.
To make sure that your transaction confirms more quickly, you will need to send the transaction with an appropriate fee. In Coinomi you can manually choose how much you pay in fees. The transaction fees (default or custom) go to the miners of each coin and not Coinomi. There are 3 predefined settings for Bitcoin (default/normal/low), but users are free to enter any amount they wish in "... / Settings / Transaction fees". It is recommended to choose 'Default' in the transaction fees settings menu. You can get an idea of what fees to use with services like https://bitcoinfees.21.co/. If your Ethereum transaction is not confirming, you can read about transaction fees here to resend or learn how to replace a transaction here.
Note on EXCHANGES from BTC:
Please consider increasing your fees when performing exchanges via our in-app exchange providers, Shapeshift and Changelly. The timeout limits of those exchanges might be reached if the BTC transaction was sent with low fees and does not confirm within 48 hours. In this case, please open a ticket with Shapeshift Support at https://shapeshift.zendesk.com/hc/en-us/requests/new or Changelly support at email@example.com and provide them with your transaction ID and a BTC refund address of your choice. (Most usually your current Coinomi BTC "Receive" address).