Is it possible to set CloudWatch alarm for a combination of metrics?
For the last overall goal, I would set the alarm on ApproximateNumberOfMessagesVisible from Cloudwatch documentation on SQS this is:


  The number of messages available for retrieval from the queue.
  
  Units: Count
  
  Valid Statistics: Average, Minimum, Maximum, Sum, Data Samples
  (displays as Sample Count in the Amazon SQS console)




For the more generic computed metric question I would go with a lambda running priodically, gathering metrics from cloudwatch, doing the maths and pushing back to cloudwatch.

Here is an example lambda gathering data from Cloudwatch to push to elasticsearch. With the examples on the documentation you should be able to push metrics back from the lambda.

Be aware that calling cloudwatch API to gather and push metrics has a cost when you got over 1M request per month, there's other limits to be aware of to avoid breaking your budget/workflow.